Gob*_*ins 0 java junit assert exception-handling mockito
在第一次和第二次通话时抛出的方法:
public void foo() throws Exception
Run Code Online (Sandbox Code Playgroud)
测试:
@test
public void testFooThrowsAtFirstAndSecondTime(){
boolean thrown;
try {
foo();
} catch (Exception e) {
thrown = true;
}
assertTrue(thrown);
thrown = false;
try {
foo();
} catch (Exception e) {
thrown = true;
}
assertTrue(thrown);
foo();
}
Run Code Online (Sandbox Code Playgroud)
你能帮我找到更好的解决方案吗?使用Mockito获得更好的解决方案也是可以接受的.
我的意思是更好,如果我可以在我的测试中避免尝试/捕获甚至多次尝试/捕获.在其他语言或jAssert我认为即使在春天也有如下陈述:
assertThrows(method(..)) //PseudoCode
Run Code Online (Sandbox Code Playgroud)
我认为与Mockito或JUnit 4.x有类似的事情.
我知道
@Test(expected=Exception)
Run Code Online (Sandbox Code Playgroud)
但是,如果我期待一次投掷并且测试结束之后,这将是可接受的.
我不认为每个方法调用都是可行的.
我会写这样的测试:
@Test
public void testFooThrowsAtFirstAndSecondTime() throws Exception {
try {
foo();
fail("foo did not throw an exception");
} catch (Exception ex) { }
try{
foo();
fail("foo did not throw an exception");
} catch (Exception ex) { }
foo();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1816 次 |
| 最近记录: |