Помимо богатых возможностей по сравнению аргументов, EasyMock позволяет подсмотреть, какой-же фактически аргумент был передан.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
public class captureTest {
@Rule
public EasyMockRule em = new EasyMockRule(this);
@Mock(type = MockType.DEFAULT)
private GroupRepository groupRepository;
@Mock(type = MockType.DEFAULT)
private UserRepository userRepository;
@TestSubject
private UserService testedObject = new UserService();
@Test
public void simpleCaptureTest() {
Capture<User> actual = EasyMock.newCapture();
userRepository.save(capture(actual));
replay(userRepository);
testedObject.create("TEST");
if (!actual.hasCaptured()) {
fail("Save argument is not valid");
}
assertThat(actual.getValue(), is(testUser()));
}
}
|
capture() это фактически матчер, поэтому его можно использовать в связке с любыми другими матчерами. Созданный capture объект может быть использовать в нескольких вызовах, но запомнит результат Читать далее Захват аргументов→