我正在使用mockito进行单元测试。到目前为止,它对我很有用,直到我看到两个警告。我已经检查了mockito的文档,但不知道如何摆脱警告。这是代码。任何提示都非常感谢。
class Foo<E> {
public void doIt(E entity) {
}
}
class TestCase1 {
// Compiler Warning -> Unchecked assignment 'Foo<Bar>' to 'Foo'
private Foo<Bar> fooMock = mock(Foo.class);
}
class TestCase2 {
private Foo fooMock = mock(Foo.class);
@Test
public testBar() {
fooMock.doIt(any(Bar.class));
// Compiler Warning -> Unchecked call to 'doIt(E)' as a member of raw type 'Foo'
verify(fooMock, times(1)).doIt(any(Bar.class));
}
}
我尝试了魔法注释@Mock
,警告消失了。
class TestCase3 {
@Mock
private Foo<Bar> fooMock;
@Before
public void setUp() {
initMocks(this);
}
@Test
public testBar() {
fooMock.doIt(any(Bar.class));
verify(fooMock, times(1)).doIt(any(Bar.class));
}
}
答案 0 :(得分:3)
您可以尝试使用Mockito的注释,以避免第一次警告。在第二个中,Matchers允许使用泛型,所以这应该可以正常工作
@RunWith(MockitoJUnitRunner.class)
public class TestCase1 {
@Mock
private Foo<Bar> fooMock;
@Test
public void testBar() {
fooMock.doIt(Matchers.<Bar>any());
Mockito.verify(fooMock, Mockito.times(1)).doIt(Matchers.<Bar>any());
}
}