Olá pessoal, tenho um teste que é suposto falhar. Mas eu se eu utilizar rules ele passa sempre.
Ei-lo:
package br.ce.wcaquino.servicos;
import br.ce.wcaquino.entidades.Filme;
import br.ce.wcaquino.entidades.Locacao;
import br.ce.wcaquino.entidades.Usuario;
import org.hamcrest.MatcherAssert;
import org.junit.Rule;
import org.junit.jupiter.api.Test;
import org.junit.rules.ErrorCollector;
import java.util.Date;
import static br.ce.wcaquino.utils.DataUtils.isMesmaData;
import static br.ce.wcaquino.utils.DataUtils.obterDataComDiferencaDias;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
class LocacaoServiceTest {
@Rule
public ErrorCollector errorCollector = new ErrorCollector();
@Test
void main() {
// Given
Usuario usuario = new Usuario("Wanderley");
Filme filme = new Filme("Mother", 1, 5.);
LocacaoService locacaoService = new LocacaoService();
// When
Locacao locacao = locacaoService.alugarFilme(usuario, filme);
// Then
// Estes testes sempre passam
errorCollector.checkThat(locacao.getValor(), is(equalTo(6.)));
errorCollector.checkThat(isMesmaData(locacao.getDataLocacao(), new Date()), is(false));
errorCollector.checkThat(isMesmaData(locacao.getDataRetorno(), obterDataComDiferencaDias(2)), is(true));
// Aqui os testes falham sem problemas
MatcherAssert.assertThat(locacao.getValor(), is(equalTo(6.)));
MatcherAssert.assertThat(isMesmaData(locacao.getDataLocacao(), new Date()), is(false));
MatcherAssert.assertThat(isMesmaData(locacao.getDataRetorno(), obterDataComDiferencaDias(2)), is(true));
}
}
Eu tenho a dependência dele no meu pom.xml
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-migrationsupport -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-migrationsupport</artifactId>
<version>5.8.2</version>
<scope>test</scope>
</dependency>
Já não sei mais o que pode ser. Olhei a documentação do JUnit e lá diz que as funcionalidades das rules são limitadas, mas ainda funcionais. Daí a necessidade de se inserir esta dependência, uma vez que ela não é mais nativa do JUnit desde a versão 5.
Alguém tem uma ideia do que pode ser?
