【发布时间】:2018-05-07 12:58:18
【问题描述】:
我正在测试的班级我有一个字段,我们称之为private List<Person> people。在测试中,我想验证是否创建了具有某些状态的某个对象。所以我需要在运行该方法后访问该列表和其中创建的对象。
我正在使用 JUnit 和 Mockito。
示例测试类:
@RunWith(MockitoJUnitRunner.class)
public class Testclass {
@InjectMock
private TestedClass tested;
@Mock(name = "personer")
private List<Person> personerMock;
@Test
public void testMethod() throws BaseException {
PersonA personA = kalle_KMD();
when(personService.getPerson(any(), any())).thenReturn(Optional.of(personA));
Properties p = new Properties();
JobbParametrar params = JobbParametrar.skapa(p);
batch.uppgift(new PersonIdÄrFöretag(1L, false), params, new KörningsId(1L), user);
assertEquals(1, personerMock.size());
}
}
以及要测试的类:
public TestedClass {
private List<Person> persons = Collections.synchronizedList(new ArrayList<Person>());
public void testedMethod() {
...
PersonA personA = personService.getPerson(identitet, användare);
Person p = createPerson(personA);
persons.add(p);
...
}
}
现在,我如何测试一个对象 (Person p) 是否已创建并添加到列表中,并访问该对象以查看其值?还是我应该采用完全不同的方法而不是在这种情况下使用 Mockito?
模拟实例字段personerMock,就像我在这个例子中所做的那样,在测试类中不起作用。
【问题讨论】:
-
你可以测试
persons多了一个条目和the person p is part of persons and the data from personA