Пружинный тест и тест на мокито - почему мой тест не пройден? - PullRequest
0 голосов
/ 10 мая 2018

В приложении, с которым я сейчас работаю, мне нужно реализовать несколько тестов и использовать их.Я читал и пробовал несколько вещей, но не имел большого успеха.

Цель состоит в том, чтобы начать повторное заполнение тестами уровня обслуживания приложения.Первый, который будет рассмотрен: UserService.

Итак, моя идея состоит в том, чтобы утверждать, что тестовый пользователь, которого мы используем в приложении, возвращает сам себя.Класс тестирования на данный момент:

@RunWith(MockitoJUnitRunner.class)
@SpringBootTest(classes = {ApplicationMain.class})
public class UserServiceTest {

    @Mock
    CentralData dataProviderMock;

    @InjectMocks
    private UserService userService;

    private <project>User testUser;
    private <project>User mockUser;

    @Before
    public void init() {
        MockitoAnnotations.initMocks(CentralData.class);
        System.out.println("dataProviderMock: " + dataProviderMock);
        System.out.println("userService: " + userService);
        userService = new UserService(dataProviderMock);
        testUser = createTestUser();
    }

    private <project>User createTestUser() {
        testUser = new <project>User();
        testUser.setSystemId("testuser");
        testUser.setEmailAddress("testuser@system.com");
        testUser.setFirstName("Test");
        testUser.setLastName("User");
        // save user
        userService.save(testUser);
        return testUser;
    }

    @Test
    public void whenUserIdIsProvided_thenRetrievedNameIsCorrect() {
        mockUser = userService.getUserById("testuser");
        when(userService.getUser("testuser")).thenReturn(testUser);
        assertEquals(testUser, mockUser);
    }
}

На моем UserService у меня есть это:

public UserService(CentralData dataProvider) {
    this.dataProvider = dataProvider;
}

Когда я сохраняю пользователя, смоделированный dataProviderMock регистрируется на консоличто я ожидаю это войти.Но в самом тесте mockUser всегда равен нулю.

Я понимаю, что userService на самом деле не обращается к слою данных и базе данных, поэтому mockUser, будучи нулевым, не является на самом деле неправильным.Итак, как я могу выполнить этот тест?

Я почти уверен, что упускаю что-то довольно простое здесь, но на самом деле не вижу этого.

...