我尝试在jUnit5上使用Mockito模拟List-Collection。
我尝试模拟以下集合:
@Test
public void testMock() {
List<Integer> listMock = mock(List.class);
}
我在Eclipse中收到警告: “类型安全:List类型的表达式需要未经检查的转换才能符合List”。
我试图修复它,但是不确定软件框架的模拟是否存在结构性问题?当我对集合进行模拟时,是否有办法完全纠正此警告,还是必须接受未经检查的转换?
我很感谢任何线索。
答案 0 :(得分:1)
您可以通过使用Mockito的@Mock
注释来解决模拟参数化类型的问题。像这样:
class MyTests {
@Mock
List<String> listOfStrings;
@BeforeEach
void initMocks() {
MockitoAnnotations.initMocks(this);
}
@Test
public void testMock() {
listOfStrings.add("a String");
}
}
也就是说,嘲笑List
通常没有多大意义,但我想您已经选择它作为任何参数化类型的示例。
如果您使用的是Mockito的Jupiter Extension,甚至可以摆脱initMocks()
方法:
@ExtendWith(MockitoExtension.class)
class MyTests {
@Mock
List<String> listOfStrings;
@Test
public void testMock() {
listOfStrings.add("a String");
}
}
这将需要附加的依赖关系:“ org.mockito:mockito-junit-jupiter:3.2.4”(或您使用的任何版本)。