Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Porque implementar o equals ao invés de criar um objeto para ser usado nos dois lugares?

Por exemplo:

    public void shouldUpdateAuctionsList_whenGetsAuctionsFromAPI() {
        AuctionsListActivity activity = new AuctionsListActivity();
        final ArrayList<Auction> auctions = new ArrayList<>(Arrays.asList(
                new Auction("Computer"),
                new Auction("Car")
        ));
        Mockito.doNothing().when(adapter).refreshList();
        Mockito.doAnswer(new Answer() {
            @Override
            public Object answer(InvocationOnMock invocation) {
                ResponseListener<List<Auction>> argument = invocation.getArgument(0);
                argument.success(auctions);
                return null;
            }
        }).when(client).all(ArgumentMatchers.any(ResponseListener.class));

        activity.getAuctions(adapter, client);

        Mockito.verify(client).all(ArgumentMatchers.any(ResponseListener.class));
        Mockito.verify(adapter).update(auctions);
    }

Obrigado

PS.: ignorem o fato de eu estar fazendo o curso em Inglês... Fora isso, ele é todo igual

4 respostas

Desculpe, não entendi o que são esses dois lugares que você se refere na pergunta.

Refiro-me a este vídeo mais especificamente (e a outros anteriores que não lembro agora exatamente quais):

https://cursos.alura.com.br/course/testes-android-mockito-e-integracoes/task/43884

Em 03:50, o instrutor decide implementar o equals para testar se a lista carregada é a mesma enviada.

Existe algum motivo prático para a abordagem dele ou é preferência pessoal apenas?

Obrigado

Edit: minha dúvida é porque sou novato em desenvolvimento de testes. Quando vi isso sendo feito, me pareceu específico demais para ser apenas coincidência, hence a dúvida...

solução!

Entendi sua pergunta agora. Foi uma escolha pessoal do professor, digamos uma escolha didática. Você poderia criar um objeto mas o professor decidiu ensinar dessa forma. É só um exemplo.

Certo, obrigado!