Как протестировать сервис, который взаимодействует с репозиторием? - PullRequest
0 голосов
/ 29 декабря 2018

Я бы хотел проверить register(...) метод, определенный в ObserverService.У меня есть:

public interface ObserverRepository extends CrudRepository<MatchObserverList, String> {}

Служба:

@Service
public class ObserverServiceImp implements ObserverService {

    private ObserverRepository observerRepository;

    private SensorService sensorService;

    @Autowired
    public ObserverServiceImp(SensorService sensorService, ObserverRepository observerRepository) {
        this.observerRepository = observerRepository;
        this.sensorService = sensorService;
    }

    @Override
    public void register(MatchObserver observer, String[] sensor_IDs) {

        MatchObserverList list;

        for(String id: sensor_IDs){
            Optional<MatchObserverList> optional = observerRepository.findById(id);
            if(optional.isPresent()){
                list = optional.get();
                list.getObservers().add(observer);
            }else{
                list = new MatchObserverList(id);
                list.getObservers().add(observer);
            }

            observerRepository.save(list);
        }

    }
}

И тестовый класс:

@RunWith(SpringRunner.class)
public class MatchObserverServiceTest {

    @Mock
    ObserverRepository repository;

    @InjectMocks
    ObserverServiceImp service;

    MatchObserver o1;
    String[] o1_list;

    MatchObserver o2;
    String[] o2_list;

    @Before
    public void setUp() {
        o1 = new MatchObserver(new TokenFCM("aav"));
        o1_list = new String[]{"111", "222", "333"};

        o2 = new MatchObserver(new TokenFCM("bbb"));
        o2_list = new String[]{"222", "333", "444"};

    }

    @Test
    public void testRegisterObservers(){
        service.register(o1,o1_list);
        service.register(o2,o2_list);

        Assert.assertEquals(2, repository.count());
    }

    @After
    public void cleanUp(){
        repository.deleteAll();
    }
}

repository.count() возвращает 0 каждый раз.Что с этим не так?

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