【发布时间】:2017-10-11 09:06:56
【问题描述】:
我目前有一个以前在 TestNG 6.9.10 和 JMockit 1.30 上运行的测试套件。将其更新到 TestNG 6.11 和 JMockit 1.35 时,我的测试参数中的所有 @Mocked 和 @Interface 注释都遇到了错误。错误是我的期望不再模拟模拟实例中方法的结果。
复制此问题的最小类如下所示。意思是两个测试应该以相同的方式工作,但在较新版本的 JMockit 中,@Injectable pSet 返回 0 作为大小而不是 10。
这是我的用户错误,还是新版本的 JMockit 中引入的错误?
import java.util.Set;
import mockit.Expectations;
import mockit.Injectable;
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
@Test
public class MinimalJMockitExample {
@Injectable Set<String> mSet;
@Test
public void test1(){
new Expectations() {{
mSet.size();
result = 10;
}};
assertEquals(mSet.size(), 10);
}
@Test
public void test2(@Injectable Set<String> pSet){
new Expectations() {{
pSet.size();
result = 10;
}};
assertEquals(pSet.size(), 10);
}
}
【问题讨论】:
-
尝试联系 Jmockit 所有者?他定期检查 SO - 但为什么要等他过来,而不是直接联系?
标签: java unit-testing testng jmockit