2017-10-11 67 views
0

我目前有一个测试套件,它以前在TestNG 6.9.10和JMockit 1.30上运行过。将其更新到TestNG 6.11和JMockit 1.35时,我在我的测试参数中遇到了所有我的@Mocked和@Interface注释中的错误。错误在于我的期望不再嘲笑模拟实例中方法的结果。参数模拟不能按照预期在JMockit中工作1.33+

复制此问题的最小类如下所示。内容是这两个测试应该以相同的方式工作,但在更新版本的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

试过Jmockit所有者联系?他正在定期检查 - 但为什么等他过来,而不是直接接触? – GhostCat

+0

可能是答案:https://github.com/jmockit/jmockit1/issues/464 – juherr

回答