【问题标题】:Parameter mocks not working as intended in JMockit 1.33+参数模拟在 JMockit 1.33+ 中无法按预期工作
【发布时间】: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);
    }
}

【问题讨论】:

标签: java unit-testing testng jmockit


【解决方案1】:

我直接联系了 JMockit 的所有者并收到了答复(与 @juherr 告诉我的一样),请参阅 https://github.com/jmockit/jmockit1/issues/468

#464修复

【讨论】:

    猜你喜欢
    • 2019-12-24
    • 1970-01-01
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 2016-01-16
    • 2017-05-05
    • 2020-12-25
    • 2020-07-14
    相关资源
    最近更新 更多