Модульное тестирование с помощью Mock и InvocationOnMock - PullRequest
0 голосов
/ 21 января 2019

Я новичок в Java Spring, мне нужно руководство по Mockito.

Я пытался протестировать свой уровень обслуживания, но по-прежнему не удается проверить фиктивное имя пользователя и адрес электронной почты.

В настоящее время я не совсем понимаю, как мне это сделать правильно.

Спасибо тебе!

UserService.java

package com.example.newproject.newproject.service;

import com.example.newproject.newproject.entity.User;

import java.util.List;

public interface UserService {
    boolean addUser(String username,String email);
    List<User> viewAllUsers();
}

UserServiceImpl.java

package com.example.newproject.newproject.service.impl;

import com.example.newproject.newproject.entity.User;
import com.example.newproject.newproject.repository.UserRepository;
import com.example.newproject.newproject.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

@Service
@Transactional
public class UserServiceImpl implements UserService {
    @Autowired
    private UserRepository userRepository;


    @Override
    public boolean addUser(String username, String email) {
        if(userRepository.findByUsernameAndEmail(username, email) == null)
        {
            User user = new User();
            user.setUsername(username);
            user.setEmail(email);
            userRepository.save(user);
            return false;

        }else{
            return true;
        }

    }

    @Override
    public List<User> viewAllUsers() {
        return userRepository.findAll();
    }
}

Мой макет

@Test
public void testAddUser(){
    Mockito.when(userRepository.findByUsernameAndEmail("Google","google@google.com")).then(invocationOnMock ->  {

        User user = new User();
        return user;
    });

    boolean result =  userService.addUser("Google","google@google.com");
    Assert.assertFalse(result);

    Mockito.verify(userRepository, Mockito.times(1)).save(userArgumentCaptor.capture());
    User user = userArgumentCaptor.getValue();
    Assert.assertEquals("Google", user.getUsername());
    Assert.assertEquals("google@google.com", user.getEmail());
}

Я получаю ошибку

  java.lang.AssertionError

во время бега

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...