首页 > 解决方案 > EasyMock 和参数化测试(JUnit 参数化)

问题描述

我想在参数化测试类中的类上使用@Mock。但由于某些原因,mockClassB 为 NULL。我的代码类似于

@RunWith(Parameterized.class)
public class ClassATest extends EasyMockSupport {

    private String uniqueIdentifier;
    private String value;

    @Mock
    private ClassB mockClassB;

    public ClassATest(String uniqueIdentified, String value) {
        this.uniqueIdentifier = uniqueIdentified;
        this.value = value;
    }

    ...

    @Parameterized.Parameters(name = "{index}: id = {0}; value = {1}")
    public static Collection<Object[]> data() {
        return Arrays.asList(new Object[][]{
                {"1", "val1"},
                {"2", "val2"}});
    }

    @Test
    public void testMethod() {
        ...
        expect(mockClassB.someMethod(uniqueIdentifier)).andReturn(value);   // mockClassB is NULL
        replayAll();
        ....
    }
}

是否可以在参数化类中创建模拟对象?

标签: javajunit4easymockparameterized

解决方案


尝试添加一个 setUp 方法:

@Before
public void setUp() {
    initMocks(this);
}

推荐阅读