Versão ALPHA! Este artigo está em versão 'Alpha' e, portanto, não foi ainda revisado corretamente

Login errado

Failed com Login

É comum no teste de gravação de dados de um form haver uma autenticação de usuário para realizar aquela operação.

Vejamos um possível StackTrace ao inserirmos um login de usuário incorreto:

FAILED: form_deve_gravar_imovel
com.google.sitebricks.client.TransportException: org.codehaus.jackson.JsonParseException: Unexpected character ('<' (code 60)): expected a valid value (number, String, array, object, 'true', 'false' or 'null')
at [Source: org.jboss.netty.buffer.ChannelBufferInputStream@4f0105c1; line: 1, column: 2]
at com.google.sitebricks.client.WebResponseImpl$1.using(WebResponseImpl.java:59)
at br.com.objectos.dojo.TesteDeFormDeImovelCreate.form_deve_gravar_imovel(TesteDeFormDeImovelCreate.java:88)

Causa da Exception

O login definido no teste está incorreto.

public void form_deve_gravar_imovel() {
  // Outros códigos
  
  Map<String, String> cookies = login("user");

  // Outros códigos
}

Importante: Até mesmo um debug de um assert não será executado neste caso. Quando o teste se trata de autenticação, qualquer breakpoint adicionado após esta linha de código não terá utilidade. O que pode dificultar a solução do problema como por exemplo, nas linhas abaixo:

FormResponseJson json = response.to(FormResponseJson.class).using(Json.class);
assertThat(json.isValid(), is(true));

Solução

Verifique qual o login possui permissão para realizar aquela determinada operação.

public void form_deve_gravar_imovel() {
  // Outros códigos
  
  Map<String, String> cookies = login("dojo");

  // Outros códigos
}

A partir de agora, o teste passará.

PASSED: form_deve_gravar_imovel

===============================================
    Default test
    Tests run: 1, Failures: 0, Skips: 0
===============================================

 
 

objectos, Fábrica de Software LTDA

  • R. Demóstenes, 627. cj 123
  • 04614-013 - Campo Belo
  • São Paulo - SP - Brasil
  • +55 11 5093-8640
  • +55 11 2359-8699
  • contato@objectos.com.br