我使用TestNG和JMockit进行测试。我的代码是这样的:
public boolean testMethod(String a, String b) {
//processing .....
mockClass.mockMethod(a);
//processing....
}
mockMethod():
Class MockClass {
public void mockMethod(String a) {
//some operations to mock
}
}
我根据这个问题使用MockUp:(How to mock public void method using jmockit?)
我还在接受NPE。我究竟做错了什么?还有,是因为我这样使用它吗?
@Test
public void test() {
new Expectations() {
{
//for statements preceding mockMethod()....
new MockUp<MockClass>(){
@Mock
public void mockMethod(String a) {
//do nothing
}
};
}
};
}
我把它放在了Expectations()&amp;也使用NonStrictExpectations。我该如何解决这个问题?
答案 0 :(得分:0)
对于void方法模拟您可以使Expectations没有任何结果,如下所示:
@Tested
private MyClassToBeTested myClassToBeTested;
@Injectable
private MockClass mockClass;
@Test
public void test() {
new Expectations() {{
mockClass.mockMethod(anyString);
}};
String inputA = "testValueA";
String inputB = "testValueB";
boolean result = myClassToBeTested.testMethod(inputA, inputB);
assertEquals(true, result);
}