4
respostas

java.lang.SecurityException: class "org.hamcrest.Matchers"'s signer information does not match signer information of other classes in the same package

Estou com essa exception ao tentar utilizar o expect(). tenho o seguinte código:

@Test
    public void deveDeletarBovino() {

        String data = "20/05/2010";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
        LocalDate date = LocalDate.parse(data, formatter);
        Bovine bovine = new Bovine();
        bovine.setId(2571);
        bovine.setBirth(date);
        bovine.setWeight(1500.0);
        bovine.setValue(new BigDecimal(130));
        bovine.setWeightArrobaFree();
        bovine.setType(BovineType.BEZERRO);
        bovine.setSex(Sex.FEMALE);
        bovine.setAge();
        bovine.setNick("TESTES4");
        int id = bovine.getId();

        given().port(port).header("accept", "application/json").contentType("application/json").body(bovine).when()
                .post("/cattlefarm/api/listaBovinos/" + id);

        expect().statusCode(200).when().delete("/cattlefarm/api/listaBovinos/" + id);

    }

ele lança a seguinte exception:

java.lang.SecurityException: class "org.hamcrest.Matchers"'s signer information does not match signer information of other classes in the same package

Quando utilizo o assertEquals do JUnit o teste passa:

public void deveDeletarBovino() {

        String data = "20/05/2010";
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
        LocalDate date = LocalDate.parse(data, formatter);
        Bovine bovine = new Bovine();
        bovine.setId(2571);
        bovine.setBirth(date);
        bovine.setWeight(1500.0);
        bovine.setValue(new BigDecimal(130));
        bovine.setWeightArrobaFree();
        bovine.setType(BovineType.BEZERRO);
        bovine.setSex(Sex.FEMALE);
        bovine.setAge();
        bovine.setNick("TESTES4");
        int id = bovine.getId();

        given().port(port).header("accept", "application/json").contentType("application/json").body(bovine).when()
                .post("/cattlefarm/api/listaBovinos/" + id);

        int statusCode = given().port(port).when().delete("/cattlefarm/api/listaBovinos/" + id).andReturn()
                .statusCode();

        assertEquals(200, statusCode);
    }

Me parece um conflito, com o Junit e o RestAssured. Estou Usando Spring-boot e Java 10. segue o link do projeto: https://github.com/igor-rodrigues2017/cattlefarm

4 respostas

Oi Igor, tudo bom?

Dei uma pesquisada aqui e parece que esse erro tem bastante ocorrencia com o import do hamcrest no build path vindo depois do Junit.

Confirma pra mim, seu hamcrest ta sendo importado antes ou depois do Junit no build path?

Fala André Blz?! Pesquisando encontrei isso também, fiz até uns no meu pom.xml para somente do JUnit trazer o hamcrest, pois o RestAssued também traz ele no maven, mas o problema persiste. Como eu confirmo a ordem de importação no build path?

Rodando pela IDE você pode ver isso nas configurações do build path. No Eclipse, por exemplo, a tela é parecida com essa:

https://i.stack.imgur.com/YmuWo.png

André testei as possibilidades de ordem de importação: Coloquei o pacote do JUnit primeiro, depois as dependências do Maven; Depois mudei coloquei as do Maven na frete do JUnit. Está ocorrendo a mesma exception. PS: To usando o Java10, não sei se pode ser por isso, Java10 + RestAssured.