Как определить поведение метода, который вызывается зависимостью цепочки, используя Mockito и JUnit? - PullRequest
0 голосов
/ 20 мая 2018

как смоделировать такой вызов метода, когда метод вызывается зависимостью цепочки?

happyPostsDto.setImage(post.getUser().getImage().getImageUrl());

До сих пор я пробовал это, но не получилось.

 @Mock
 HappyPost happyPost;

 @Mock
 User user;

 @Mock
 Images images;

и в методе @Test

 when(happyPost.getUser()).thenReturn(new User());
 when(user.getImage()).thenReturn(new Images());
 when(images.getImageUrl()).thenReturn("jhv");
 Assertions.assertEquals(happyPosts.size(),happyPostService.mapHappyPosts(happyPosts).size());

Пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 20 мая 2018

Вам нужно будет создать собственную цепочку оскверненных объектов.Я вижу, что вы пытаетесь вернуть new User() и new Images().Вместо них создайте свои собственные mockedUser и mockedImages.Вы можете сделать что-то вроде:

...
// create mocked objects of user and images
User mockedUser = Mockito.mock(User.class);
Images mockedImages = Mockito.mock(Images.class);

//now create a chain
when(mockedImages.getImageUrl()).thenReturn("jhv");
when(mockedUser.getImage()).thenReturn(mockedImages);
when(happyPost.getUser()).thenReturn(mockedUser);
...

В качестве примечания: вы уже издеваетесь над этим:

 @Mock
 User user;

 @Mock
 Images images;

Так что вы можете использовать user вместо mockedUser.То же самое касается images и mockedImages.

...