Java 我们能否验证,单元测试的方法中没有发生异常
ATest.java- 当testdisplay2()方法中没有出现异常时,我们是否可以验证,就像我们在testdisplay1()中出现异常时预期的那样Java 我们能否验证,单元测试的方法中没有发生异常,java,junit,Java,Junit,ATest.java- 当testdisplay2()方法中没有出现异常时,我们是否可以验证,就像我们在testdisplay1()中出现异常时预期的那样 你所说的是对的。尝试更改display()以始终抛出AISTureException,您将看到testdisplay2()给出了一个错误。您所拥有的是正确的。尝试更改display()以始终引发AISTureException,您将看到testdisplay2()给出错误。预期的行为是不会引发异常。如果抛出任何参数,测试将失败,除非注释中有一
你所说的是对的。尝试更改
display()
以始终抛出AISTureException
,您将看到testdisplay2()
给出了一个错误。您所拥有的是正确的。尝试更改display()
以始终引发AISTureException
,您将看到testdisplay2()
给出错误。预期的行为是不会引发异常。如果抛出任何参数,测试将失败,除非注释中有一个预期的
参数,就像您在testdisplay1
测试中的参数一样
另外,这是一个很好的解读:预期的行为是不会抛出异常。如果抛出任何参数,测试将失败,除非注释中有一个
预期的
参数,就像您在testdisplay1
测试中的参数一样
另外,这是一个很好的解读:如果发生了不应该发生的异常,测试本身就会失败。您可以将display方法的返回类型更改为int或其他仅在未引发异常时才会返回的类型,并检查返回值是否存在。您可以重命名测试方法以传达预期的行为,例如:
当两个参数均为REFALSE()@XtremeBaumer是时,显示不存在异常。如果我更改返回类型,则可以使用断言返回值。但这里的返回类型是无效的,我无法更改。无论如何,我可以测试特定异常是否没有发生。您可以尝试预期=AIsTrueException.class | | BIsTrueException.class
我自己从未尝试过。如果发生了不应该发生的异常,测试本身就会失败。您可以将display方法的返回类型更改为int或只有在未引发异常时才会返回的内容,并检查返回值是否存在。您可以重命名测试方法以传达预期的行为,例如:当两个参数均为REFALSE()@XtremeBaumer是时,显示不存在异常。如果我更改返回类型,则可以使用断言返回值。但这里的返回类型是无效的,我无法更改。无论如何,我可以测试特定异常是否没有发生。您可以尝试预期=AIsTrueException.class | | BIsTrueException.class
我自己从未尝试过。如果引发任何异常,则可能是。。。我们使用期望值。但是在这里我想验证没有从方法中抛出异常。如果有任何异常被抛出,测试将失败。因此,如果测试成功,就意味着没有抛出异常。是的,您是正确的。但是我们不能用一些代码来验证这一点。无论如何,谢谢。。如果测试成功,我会同意的。。。未引发异常..如果引发任何异常,则为是。。。我们使用期望值。但是在这里我想验证没有从方法中抛出异常。如果有任何异常被抛出,测试将失败。因此,如果测试成功,就意味着没有抛出异常。是的,您是正确的。但是我们不能用一些代码来验证这一点。无论如何,谢谢。。如果测试成功,我会同意的。。。没有引发异常。。
class A{
public void display(){
...
...
...
if(a){
throw new AIsTrueException("a true");
}
if(b){
throw new BIsTrueException("b true");
}
}
}
class BTest{
...
@InjectMock
A subject;
...
@Test(expected=AIsTrueException.class)
public void testdisplay1(){
subject.display(true,false);
}
@Test
public void testdisplay2(){
subject.display(false,false);
// Here how can I verify that no exception has occured in display(),
// (When exception occured we use expected = ...)
// Do we have similar when no exception occured
}
...
...
}