相关疑难解决方法(0)

JUnit测试异常

我是java的新手.

我正在构造函数上运行一些JUnit测试.构造函数是这样的,如果给它的一个参数给它一个null或一个空字符串,它应该抛出一个异常.

当我在JUnit中使用null或空字符串参数测试此构造函数时,我得到一个红色条,即使我几乎100%确定构造函数方法确实在将这些参数传递给它时引发异常.

如果方法按照预期的方式抛出异常,JUnit中是否应该有绿色条?或者是当你应该得到一个红色条,当异常抛出按照预期的方式工作时?

java junit

82
推荐指数
5
解决办法
13万
查看次数

在Java中如何使用JUnit验证抛出的异常?

在为Java API编写单元测试时,可能会出现需要对异常执行更详细验证的情况.比JUnit 提供的@test注释提供的更多.

例如,考虑一个应该从其他接口捕获异常的类,包装该异常并抛出包装的异常.您可能需要验证:

  1. 抛出包装异常的确切方法调用.
  2. 包装器异常将原始异常作为其原因.
  3. 包装器异常的消息.

这里的要点是,您希望在单元测试中对异常进行额外验证(而不是关于是否应该验证异常消息等事项的争论).

对此有什么好的方法?

java junit exception-handling exception

28
推荐指数
6
解决办法
3万
查看次数

j在不同情况下使用相同的异常

我正在为一个解析String的构造函数编写一个jUnit测试,然后检查很多东西.当存在错误数据时,对于每个事物,都会抛出一些带有不同消息的IllegalArgumentException.所以我想为它编写测试,但是我如何识别抛出的错误?这是我该怎么做的:

@Test(expected=IllegalArgumentException.class)
public void testRodneCisloRok(){
    new RodneCislo("891415",dopocitej("891415"));
}
Run Code Online (Sandbox Code Playgroud)

这就是我想要的方式,但我不知道是否有可能以某种方式编写它:

@Test(expected=IllegalArgumentException.class("error1"))
public void testRodneCisloRok(){
    new RodneCislo("891415",dopocitej("891415"));
}
Run Code Online (Sandbox Code Playgroud)

java junit unit-testing

11
推荐指数
2
解决办法
4699
查看次数