我需要为下面的类的构造函数编写一个测试用例,其中有一个我需要模拟和验证的void方法。如何验证是否使用powermockito调用了createToken?
public class Mytest{
private Static string token;
public Mytest(){
if (token == null){
createToken();
}else
{
Log.error("log message");
}
}
private void createToken() {
// logic to create token
}
}
测试课
public class TestMytest{
//set token to null
PowerMockito.spy(Mytest.class);
final String token = null;
Whitebox.setInternalState(Mytest.class,
"token", token);
//supress the createToken() method
MemberModifier.suppress(MemberMatcher.method(
Mytest.class, "createToken"));
new Mytest();
**//verify(??????????)**
}
答案 0 :(得分:0)
您为什么要进行此验证?你实际上想要做的是检查是否已设置令牌? BTW为什么它甚至是静态的?您希望让该类的每个实例具有相同的令牌值吗?
为令牌字段添加getter或将其设置为private。
public class Mytest{
final String token;
public Mytest(){
createToken();
}
private void createToken() {
// logic to create token
}
}
你可以像这样测试它(我不记得Matchers是否有这种方法,但你明白了):
assertThat(new Mytest().token, Matchers.notNull())