java使用mockito填充列表
我有一门课要考
public class MinicabManager {
public static Set<Driver> allDrivers ;
public static Set<Passenger> allPassengers;
public static List<Trip> trips;
public static Set<Driver> findFakeDrivers() {
Set<Driver> fakeDrivers = new HashSet();
for (Trip t : trips) {
for (Driver d : allDrivers) {
if (t.getDriver().getDriver() != d.getDriver()) {
fakeDrivers.add(d);
}
}
}
return fakeDrivers;
}
运行此测试时,我会收到NullPointerException:
@RunWith(MockitoJUnitRunner.class)
public class MinicabManagerTest {
@Mock
Set<Driver> allDrivers;
@Mock
Set<Passenger> allPassengers;
@Mock
List<Trip> trips;
@InjectMocks
MinicabManager minicabManager;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
minicabManager = new MinicabManager();
allDrivers = new HashSet();
allPassengers = new HashSet();
trips = new ArrayList();
Driver d1 = new Driver();
d1.setDriver("d1");
Driver d2 = new Driver();
d2.setDriver("d2");
allDrivers.add(d1);
allDrivers.add(d2);
Passenger p1 = new Passenger();
p1.setName("p1");
Passenger p2 = new Passenger();
p2.setName("p2");
allPassengers.add(p1);
allPassengers.add(p2);
Trip t1 = new Trip();
t1.setDriver(d1);
t1.setPassengers(allPassengers);
trips.add(t1);
}
@Test
public void testFindFakeDrivers() throws Exception {
Set<Driver> result = minicabManager.findFakeDrivers();
}
如何填充列表? 据我所知,InjectMock由模拟列表和集合注入,然后在每个测试用例之前填充。但我得到了NullPointerException
# 1 楼答案
@Mock
注释将为您创建一个模拟对象,您可以随时在测试中使用它李>null
)李>MockitoJUnitRunner
和调用initMocks()
方法。一个就够了李>另外,注意不要将字符串与
=
和!=
进行比较。使用equals()
方法