Java 不引发异常的模拟方法
我有一个在特殊情况下抛出异常的方法。我想编写一个测试用例,在未引发异常时检查行为。 我在文档或示例中找不到这一点。请帮忙 例如: 但我想测试一下,根本不会抛出异常:Java 不引发异常的模拟方法,java,exception,mocking,mockito,Java,Exception,Mocking,Mockito,我有一个在特殊情况下抛出异常的方法。我想编写一个测试用例,在未引发异常时检查行为。 我在文档或示例中找不到这一点。请帮忙 例如: 但我想测试一下,根本不会抛出异常: class Validator { void validate(ValidationData dataToValidate) throws Exception { } } e、 g.我需要一些类似于: when(doSomething()).thenNotThrowException 或 要测试没有抛出异常的情况
class Validator {
void validate(ValidationData dataToValidate) throws Exception {
}
}
e、 g.我需要一些类似于:
when(doSomething()).thenNotThrowException
或
要测试没有抛出异常的情况,实际上需要做的更少:
- 不要对
编程,然后抛出
- 在您的测试用例中,期望测试方法正常运行并在没有异常的情况下完成(在Junit中,对于
,没有任何@test
期望的
属性)
如果测试执行时没有错误,则测试通过。默认情况下,Mockito的mock对void方法不做任何操作,因此您不需要编写任何内容 如果要明确执行此操作,请尝试以下操作:
doNothing().when(validator).validate(any())
如果您只想测试测试函数中是否没有异常,那么应该使用以下注释:@test(expected=test.None.class)
例如:
@Test(expected = Test.None.class)
public void testFunction() {
// some code
}
若验证器对象被模拟,那个么你们不需要做任何事情,若你们想验证方法抛出异常,那个么只在我应该使用mock,spy,stub的时候使用?这样的语句接受Mockito的mock和spies,我不知道stub。
when(doSomething()).thenDoNothing
@Test(expected = Test.None.class)
public void testFunction() {
// some code
}