<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
		<id>http://doc-redome.cancer.org.br/index.php?action=history&amp;feed=atom&amp;title=Padr%C3%A3o_de_Desenvolvimento_-_Testes_Unit%C3%A1rios</id>
		<title>Padrão de Desenvolvimento - Testes Unitários - Histórico de revisão</title>
		<link rel="self" type="application/atom+xml" href="http://doc-redome.cancer.org.br/index.php?action=history&amp;feed=atom&amp;title=Padr%C3%A3o_de_Desenvolvimento_-_Testes_Unit%C3%A1rios"/>
		<link rel="alternate" type="text/html" href="http://doc-redome.cancer.org.br/index.php?title=Padr%C3%A3o_de_Desenvolvimento_-_Testes_Unit%C3%A1rios&amp;action=history"/>
		<updated>2026-05-20T07:19:06Z</updated>
		<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://doc-redome.cancer.org.br/index.php?title=Padr%C3%A3o_de_Desenvolvimento_-_Testes_Unit%C3%A1rios&amp;diff=1682&amp;oldid=prev</id>
		<title>Sheila.prado em 16h28min de 4 de maio de 2021</title>
		<link rel="alternate" type="text/html" href="http://doc-redome.cancer.org.br/index.php?title=Padr%C3%A3o_de_Desenvolvimento_-_Testes_Unit%C3%A1rios&amp;diff=1682&amp;oldid=prev"/>
				<updated>2021-05-04T16:28:23Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;pt-BR&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Edição das 16h28min de 4 de maio de 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Linha 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Padrões de Desenvolvimento&lt;/del&gt;|'''Voltar''']]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Ambiente Desenvolvedor&lt;/ins&gt;|'''Voltar''']]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Como escrever um bom teste unitário ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Como escrever um bom teste unitário ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sheila.prado</name></author>	</entry>

	<entry>
		<id>http://doc-redome.cancer.org.br/index.php?title=Padr%C3%A3o_de_Desenvolvimento_-_Testes_Unit%C3%A1rios&amp;diff=1661&amp;oldid=prev</id>
		<title>Sheila.prado em 14h37min de 4 de maio de 2021</title>
		<link rel="alternate" type="text/html" href="http://doc-redome.cancer.org.br/index.php?title=Padr%C3%A3o_de_Desenvolvimento_-_Testes_Unit%C3%A1rios&amp;diff=1661&amp;oldid=prev"/>
				<updated>2021-05-04T14:37:57Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;pt-BR&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Edição anterior&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Edição das 14h37min de 4 de maio de 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Linha 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linha 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Padrões de Desenvolvimento|'''Voltar''']]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Como escrever um bom teste unitário ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Como escrever um bom teste unitário ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; '''Princípio Básico:''' Sempre utilizar Test Driven Development (TDD) para criação de novos códigos&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; '''Princípio Básico:''' Sempre utilizar Test Driven Development (TDD) para criação de novos códigos&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sheila.prado</name></author>	</entry>

	<entry>
		<id>http://doc-redome.cancer.org.br/index.php?title=Padr%C3%A3o_de_Desenvolvimento_-_Testes_Unit%C3%A1rios&amp;diff=96&amp;oldid=prev</id>
		<title>Admin: Criou página com '== Como escrever um bom teste unitário ==   '''Princípio Básico:''' Sempre utilizar Test Driven Development (TDD) para criação de novos códigos  Caso você já tenha con...'</title>
		<link rel="alternate" type="text/html" href="http://doc-redome.cancer.org.br/index.php?title=Padr%C3%A3o_de_Desenvolvimento_-_Testes_Unit%C3%A1rios&amp;diff=96&amp;oldid=prev"/>
				<updated>2017-12-15T20:44:02Z</updated>
		
		<summary type="html">&lt;p&gt;Criou página com &amp;#039;== Como escrever um bom teste unitário ==   &amp;#039;&amp;#039;&amp;#039;Princípio Básico:&amp;#039;&amp;#039;&amp;#039; Sempre utilizar Test Driven Development (TDD) para criação de novos códigos  Caso você já tenha con...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Como escrever um bom teste unitário ==&lt;br /&gt;
  '''Princípio Básico:''' Sempre utilizar Test Driven Development (TDD) para criação de novos códigos&lt;br /&gt;
&lt;br /&gt;
Caso você já tenha conhecimento do TDD, isso já é 80% do caminho para que seu teste seja bem escrito. Mas para que o princípio do TDD seja complementado e então os testes sejam melhores organizados e menos propensos a falhas é recomendável seguir os três princípios abaixo:&lt;br /&gt;
# Crie o cenário, popule o(s) objeto(s) a serem utilizados no seu teste&lt;br /&gt;
# Execute a unidade a ser testada&lt;br /&gt;
# Verifique se o teste é aprovado através dos asserts&lt;br /&gt;
&lt;br /&gt;
Tendo em mente os princípios citados acima vemos no código abaixo um exemplo de código que os demonstra:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color: black; background-color: #F7F3F7; width: 85%;&amp;quot;&lt;br /&gt;
|   &lt;br /&gt;
  class Avaliador {&lt;br /&gt;
    private double maiorDeTodos = Double.NEGATIVE_INFINITY;&lt;br /&gt;
    private double menorDeTodos = Double.POSITIVE_INFINITY;&lt;br /&gt;
    &amp;amp;nbsp;&lt;br /&gt;
    public void avalia(Leilao leilao) {&lt;br /&gt;
        for(Lance lance : leilao.getLances()) {&lt;br /&gt;
           if(lance.getValor() &amp;gt; maiorDeTodos) {&lt;br /&gt;
                maiorDeTodos = lance.getValor();&lt;br /&gt;
            }&lt;br /&gt;
            else if(lance.getValor() &amp;lt; menorDeTodos) {&lt;br /&gt;
                menorDeTodos = lance.getValor();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &amp;amp;nbsp;&lt;br /&gt;
    public double getMaiorLance() { return maiorDeTodos; }&lt;br /&gt;
    &amp;amp;nbsp;&lt;br /&gt;
    public double getMenorLance() { return menorDeTodos; }&lt;br /&gt;
   }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color: black; background-color: #F7F3F7; width: 85%;&amp;quot;&lt;br /&gt;
|   &lt;br /&gt;
    import org.junit.Assert;&lt;br /&gt;
    &amp;amp;nbsp;&lt;br /&gt;
    class AvaliadorTest {&lt;br /&gt;
    &amp;amp;nbsp;&lt;br /&gt;
        @Test&lt;br /&gt;
        public void deveEntenderLancesEmOrdemCrescente() {&lt;br /&gt;
                //1 - populando o objeto&lt;br /&gt;
                Usuario joao = new Usuario(&amp;quot;Joao&amp;quot;);&lt;br /&gt;
                Usuario jose = new Usuario(&amp;quot;José&amp;quot;);&lt;br /&gt;
                Usuario maria = new Usuario(&amp;quot;Maria&amp;quot;);&lt;br /&gt;
                Leilao leilao = new Leilao(&amp;quot;Playstation 3 Novo&amp;quot;);&lt;br /&gt;
                leilao.propoe(new Lance(maria,250.0));&lt;br /&gt;
                leilao.propoe(new Lance(joao,300.0));&lt;br /&gt;
                leilao.propoe(new Lance(jose,400.0));&lt;br /&gt;
                &amp;amp;nbsp;&lt;br /&gt;
                //2 - Executando a unidade a ser testada        &lt;br /&gt;
                Avaliador leiloeiro = new Avaliador();&lt;br /&gt;
                leiloeiro.avalia(leilao);&lt;br /&gt;
                double maiorEsperado = 400;&lt;br /&gt;
                double menorEsperado = 250;&lt;br /&gt;
                &amp;amp;nbsp;&lt;br /&gt;
                //3 - Verificando se o teste é aprovado através dos asserts&lt;br /&gt;
                Assert.assertEquals(maiorEsperado, leiloeiro.getMaiorLance(), 0.0001);&lt;br /&gt;
                Assert.assertEquals(menorEsperado, leiloeiro.getMenorLance(), 0.0001);&lt;br /&gt;
            }&lt;br /&gt;
     }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Nomenclatura e localização da classe de teste ==&lt;br /&gt;
=== Nome das classes ===&lt;br /&gt;
Toda classe de teste deve ter a como nome o mesmo nome que foi utilizado na classe origem seguido do sufixo &amp;quot;Test&amp;quot;. Desta forma temos o seguinte exemplo:&lt;br /&gt;
&lt;br /&gt;
'''Classe de Origem:''' DoadorDao&lt;br /&gt;
&lt;br /&gt;
'''Classe de Teste:''' DoadorDaoTest&lt;br /&gt;
&lt;br /&gt;
=== Nome do método ===&lt;br /&gt;
O nome do teste sempre deve ter a ver exatamente com o que é testado dentro dele de forma que quem o ler saiba exatamente o que está sendo verificado, sem a necessidade de entender o que foi codificado no teste. Veja o exemplo:&lt;br /&gt;
&lt;br /&gt;
'''Método de origem:''' salva()&lt;br /&gt;
&lt;br /&gt;
'''Método de teste:''' salvaNomeNulo()&lt;br /&gt;
&lt;br /&gt;
   '''Atenção:''' Verifique todas as possibilidades, não somente o &amp;quot;Caminho Feliz =D&amp;quot;&lt;br /&gt;
&lt;br /&gt;
No exemplo anterior utilizamos uma classe de leilão. Dentro desta classe é possível verificar que os objetos de Usuário e Leilão são populados e posteriormente testados, mas não há nenhum tipo de previsão no código para caso haja algum tipo de excessão ou erro. Ou seja, caso o valor do lance seja nullo ou menor que zero nosso sistema gerará uma excessão. Desta forma torna-se necessário realizar testes para todos os caminhos possíveis em nosso código antes de então ele ser dado como testado. Verifique no exemplo com um teste mais abrangente:&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;color: black; background-color: #F7F3F7; width: 85%;&amp;quot;&lt;br /&gt;
|   &lt;br /&gt;
    import org.junit.Assert;&lt;br /&gt;
    &amp;amp;nbsp;&lt;br /&gt;
    class AvaliadorTest {&lt;br /&gt;
    &amp;amp;nbsp;&lt;br /&gt;
        @Test&lt;br /&gt;
        public void deveEntenderLancesEmOrdemCrescente() {&lt;br /&gt;
            //1 - populando o objeto&lt;br /&gt;
            Usuario joao = new Usuario(&amp;quot;Joao&amp;quot;);&lt;br /&gt;
            Usuario jose = new Usuario(&amp;quot;José&amp;quot;);&lt;br /&gt;
            Usuario maria = new Usuario(&amp;quot;Maria&amp;quot;);&lt;br /&gt;
            Leilao leilao = new Leilao(&amp;quot;Playstation 3 Novo&amp;quot;);&lt;br /&gt;
            leilao.propoe(new Lance(maria,250.0));&lt;br /&gt;
            leilao.propoe(new Lance(joao,300.0));&lt;br /&gt;
            leilao.propoe(new Lance(jose,400.0));&lt;br /&gt;
            &amp;amp;nbsp;&lt;br /&gt;
            //verificação do caminho infeliz =\&lt;br /&gt;
            Assert.assertNotNull(leilao.getPropostas());&lt;br /&gt;
            &amp;amp;nbsp;&lt;br /&gt;
            //2 - Executando a unidade a ser testada&lt;br /&gt;
            Avaliador leiloeiro = new Avaliador();&lt;br /&gt;
            leiloeiro.avalia(leilao);&lt;br /&gt;
            double maiorEsperado = 400;&lt;br /&gt;
            double menorEsperado = 250;&lt;br /&gt;
            &amp;amp;nbsp;&lt;br /&gt;
            //3 - Verificando se o teste é aprovado através dos asserts&lt;br /&gt;
            Assert.assertEquals(maiorEsperado, leiloeiro.getMaiorLance(), 0.0001);&lt;br /&gt;
            Assert.assertEquals(menorEsperado, leiloeiro.getMenorLance(), 0.0001);&lt;br /&gt;
            }&lt;br /&gt;
         }&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Utilização da classe Assert ===&lt;br /&gt;
A classe assert tem todos os métodos necessários para realizar os testes do projeto, desta forma evite fazer comparações boleanas utilizando o método assert. Exemplo de má utilização:&lt;br /&gt;
&lt;br /&gt;
Assert.assertTrue(leilao.getPropostas() != null);&lt;br /&gt;
&lt;br /&gt;
== Material Complementar ==&lt;br /&gt;
# [https://www.ibm.com/cloud/garage/content/code/practice_test_driven_development/ Test-driven development],IBM Cloud Garage Method, 2017.&lt;br /&gt;
# [https://www.thoughtworks.com/pt/insights/blog/write-better-tests-5-steps Escreva Testes Melhores em 5 Passos], ThoughWorks, 2014.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>