我目前有一个以前在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);
}
}
答案 0 :(得分:0)
我直接联系了JMockit的老板并收到了答复(和@juherr告诉我的一样),见 https://github.com/jmockit/jmockit1/issues/468
由#464
修正