Assertions serve pra quê?

olá, dei uma olhada num tutorial sobre assertions aqui no GUJ, mas infelizmente ainda não entendi direito.
devemos usá-las no lugar daqueles “if” que usamos pra depurar ou não tem nada a ver?

obrigado pessoal!!

olha, geralmente os utilizo para testes!

testes de cobertura e unidade!

é uma forma de saber se o código que vc fez realmente está fazendo o que vc pensa q ele está fazendo.

desculpa é que sou muito iniciante.
mas nos POGs que eu faço as vezes, pra ver se um método faz o que eu quero ou algo do tipo, boto um:
if(alguma coisa) System.out.println(“deu certo”);
assertions seria uma forma de eu não fazer mais isso? é feio ter esses ifs no código?

hehehe… é horrivel ter esses tipo de ifs no código.

eu tbm faço isso as vezes para testes, mas só para testes e depois tiro. digamos que seja um debug manual… hehehe…

vc pode utilizar assertions sim e exceptions tbm para controlar e encontrar os bugs de sua aplicação.

de uma lida sobre JUnit, apesar de ser um pouco enfadonho trabalhar com ele sem fins comerciais, a teoria vai t ajudar mto, pq ele trabalha com assertativas tbm…

valeu :stuck_out_tongue:

brigadao pela paciencia cara!

:stuck_out_tongue:

de nada!

[quote=souarte]desculpa é que sou muito iniciante.
mas nos POGs que eu faço as vezes, pra ver se um método faz o que eu quero ou algo do tipo, boto um:
if(alguma coisa) System.out.println(“deu certo”);
assertions seria uma forma de eu não fazer mais isso? é feio ter esses ifs no código?[/quote]

Souarte, a unica diferenca de assert para o seu if, é que assert pode ser abilitado e desabilitado, sendo assim seu programa não sofrera nenhuma alteração, não lançara o erro e não imprimira nada na tela, caso seja implementado corretamente.

Complementando, Assertions devem ser usadas para testar situações que nunca deveriam acontecer, e se aconteceu, é pq algo muito errado com seu progrma aconteceu, e a melhor coisa a fazer é abortar a execução.

[]´s

Assertions tem por objetivo assegurar as pré (entrada) e pós (saída) condições de um método. É mais utilizado quando desenvolvemos softwares por contrato (onde a maioria dos requisitos são definidos antes).

Achei no forum do guj, uma explicação de como utilizar os assertions e como desabilitá-los na execução de seus programas, espero que ajude!

http://www.guj.com.br/posts/list/56761.java