Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

O erro em total não necessariamente vai ocorrer

O erro não necessariamente vai ocorrer, uma vez que a ordem de execução dos testes no Junit, por default, é aleatória.

Dessa forma, é possível que o teste de total seja executado, com sucesso, antes do teste de adicionar novo Leilão.

Obs: não pude confirmar porque o código do servidor de total de leilões está ausente do zip disponibilizado.

2 respostas

Oi Leonardo, nesse caso, pelo que entendi, não é bem pela ordem de execução. O que foi adicionado ou removido ta la no servidor, então um teste, independente da ordem, pode ter influência sobre o outro.

solução

Sim, mas na primeira vez que executar a bateria de testes, o servidor estará só com os dois leiloes do cenário inicial - se nessa primeira execução o teste de total for executado antes do teste de inserção, não vai falhar, pois vai encontrar apenas os 2 leilões iniciais.

Claro, se a ordem de execução for o contrário, e a inserção ocorrer antes do teste de total, sim, nesse caso esse último vai falhar. E em todas as próximas execuções, já que, como você disse, os dados ficam no servidor.

Creio que essa é uma falha importante, pois quebra o princípio de Independência dos testes - representado pela letra "I" do acrônimo FIRST (https://github.com/ghsukumar/SFDC_Best_Practices/wiki/F.I.R.S.T-Principles-of-Unit-Testing). Os testes deveriam ter SEMPRE o mesmo resultado, independentemente da ordem de execução.

Uma solução é sempre limpar o servidor depois de testes que alterem seu estado - executando uma deleção dos itens inseridos ao final do teste. Assim, o próximo teste vai sempre encontrar (ou deveria) o cenário inicial de apenas 2 leilões.