BDDMockit
一般都是通过以下几个步骤来实现单元测试:
- 基于假定条件来设置,比如given()设置某些方法的值
- 触发某些操作,比如调用方法
- 进行结果或者调用过程的验证, then /assert操作
基于上述的思路,下面通过一个示例来展示其用法。
示例
代码示例:
@Test
public void testBDD() {
String name = "jack";
Integer age = 12;
given(gameRepository.findByName(name)).willReturn(null);
this.gameService.create(name, age);
then(this.gameRepository).should().insert(name, age);
}
其中,在gameService的create()方法中调用了gameRepository.insert(),这里用来验证这个insert方法是否被正确调用过了。
should()方法中还可以使用如下方式:
- should(VerificationMode mode)
- should(InOrder inOrder)
- should()
在VerificationMode中,可以支持如下验证方式:
- times(num): 调用次数
- never() : 从未调用
- atLeastOnce(): 至少一次
- atLeast(num): 至少num次数
- atMost(num): 至多num次数
使用的方式:
verify(mock, verificationMode).somemethod(“it is invoked once, etc”)
then(mock).should(VerificationMode).somethod(“xxxx”)