Vou montar um projeto com CI 2.0 + Doctrine + PHPunit com exemplos

O mais importante dos testes unitários é realmente o modelo, como o amigo
Marcus falou

Testes em controllers são chamados "testes de integração", onde vc envia um
sinal e espera um retorno de um determinado tipo contendo determinados
dados, esses testes são mais usados em serviços (web services), eu
particulamente nunca precisei deles, pois pra aplicações normais, os testes
funcionais (ou de aceitação) cobrem tanto as views quanto os controllers de
forma satisfatória.

Eu recomendo o uso do Selenium pra quem quiser se aventurar nos testes
funcionais. Hoje é a ferramenta mais usada em todas as linguagens, e possue
um Driver "maduro" pra PHP.

Abraços!

2011/3/2 Tiago Davi <[email protected]>

> Sim consegui usar a integração do Eric mas antes disso sofri para instalar
> o PEAR! essa lib da erro em quase todos os momentos de sua instalação e
> sempre tem um macete ou outro que precisamos fazer para ir driblando os
> erros e o SimpleTest comparado ao PHPUnit é realmente muito mais simples e
> exibe os testes direto no navegador.
>
> Já uso o Doctrine integrado ao CI 2.0 e recomendo! Doctrine agiliza e muito
> no processo de desenvolvimento mas tem que entender do ORM.
>
> Quando você entende o que o Doctrine pode fazer por você muita coisa do CI
> você irá deixar de lado!
>
> Já não uso models nem validação nem nada disso do CI, faço quase tudo pelo
> Doctrine e além disso ele permite testar meus models então só me preocupo
> mesmo em testar minhas libs e alguns controllers principais.
>
> Hoje uso CI 2 + Doctrine + Modular Extensions (HMVC) + SimpleTest
>
> Criei aqui uma estrutura pronta inclusive com o MY_Controller como uma lib
> de métodos que sempre vou precisar usar nos projetos e outra de helpers
> úteis e esse modular permite que meus controllers conversem entre si sem
> precisar herdá-los.
>
> Fico feliz em contribuir.
>
> Att.
>
> Em 2 de março de 2011 20:38, Nando Araujo <[email protected]>escreveu:
>
> Eu tenho interesse em usar TDD, testes unitários, etc..
>> Até tive um tempo estudando em cima do projeto que o Eric Saboia forneceu
>> usando o CI_Unit, já experimentou?
>>
>> Eu vou ver se arranjo um tempo para integrar o Doctrine no CI 2.0 (não
>> cheguei a mexer com o Doctrine, mas li um pouco a respeito e entendi por
>> cima o funcionamento ORM e tal)..
>>
>> Vale a pena a gente trocar uma idéia a respeito..
>> Abraço
>>
>> Em 28 de fevereiro de 2011 22:36, Marcus Cavalcanti <
>> [email protected]> escreveu:
>>
>> Hum... isso não é responsabilidade dos controllers, mas tudo bem.
>>>
>>> O que faria sentido testar nos controllers é o fluxo, mas aí vc poderia
>>> mockar e testá-los.
>>>
>>>
>>> --
>>> Marcus Cavalcanti
>>> 21 9144-5068
>>> www.marcuscavalcanti.net/blog
>>>
>>>
>>> 2011/2/28 Tiago Davi <[email protected]>
>>>
>>> Meus models são do Doctrine e organizo minha lógica toda em controllers e
>>>> libs e de qualquer forma já consegui chamar controller, model e inclusive
>>>> testar métodos dentro de módulos do hmvc (modular extensions) com 
>>>> simpletest
>>>> e CI 2.0.
>>>>
>>>> Se alguém se interessar sobre isso é só avisar.
>>>>
>>>> Obg.
>>>>
>>>> Em 27 de fevereiro de 2011 01:30, Marcus Cavalcanti <
>>>> [email protected]> escreveu:
>>>>
>>>> Não é não poder, é não fzer sentido.
>>>>>
>>>>> Controller não deve entender do seu negócio, não é ele a camada pra
>>>>> isso.
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Marcus Cavalcanti
>>>>> 21 9144-5068
>>>>> www.marcuscavalcanti.net/blog
>>>>>
>>>>>
>>>>> 2011/2/26 Tiago Davi <[email protected]>
>>>>>
>>>>>> Vou dar uma lida depois nesse material, estou iniciando agora nos
>>>>>> casos de teste.
>>>>>>
>>>>>> Mas acho estranho não poder testar um controller.
>>>>>>
>>>>>> Obg.
>>>>>>
>>>>>> Em 26 de fevereiro de 2011 18:44, Tiago Davi <[email protected]
>>>>>> > escreveu:
>>>>>>
>>>>>> O que quer dizer com controller não tem RN?
>>>>>>>
>>>>>>> Eu só queria por exemplo testar se um controle retorna mesmo TRUE.
>>>>>>>
>>>>>>> Dai no meu teste eu faria $this->assertTrue("passando o método do
>>>>>>> meu controle aqui");
>>>>>>>
>>>>>>> Resumindo eu gostaria de testar meus controllers antes mesmo de
>>>>>>> escreve-los e pra isso estou integrando o SimpleTest com CI, estou sendo
>>>>>>> ignorante em alguma coisa?
>>>>>>>
>>>>>>> Att.
>>>>>>>
>>>>>>> Em 26 de fevereiro de 2011 18:38, Marcus Cavalcanti <
>>>>>>> [email protected]> escreveu:
>>>>>>>
>>>>>>>
>>>>>>>> http://blog.caelum.com.br/tdd-e-sua-influencia-no-acoplamento-e-coesao/
>>>>>>>>
>>>>>>>>
>>>>>>>> <http://blog.caelum.com.br/tdd-e-sua-influencia-no-acoplamento-e-coesao/>tem
>>>>>>>> um outro artigo muito bom que ia te ajudar a clarear um pouco mais 
>>>>>>>> sobre
>>>>>>>> isso, mas parece que o domínio está fora, de qualquer maneira, se você
>>>>>>>> quiser tentar depois:
>>>>>>>>
>>>>>>>>
>>>>>>>> http://www.team-oriented-programming.com/2010/06/30/tdd_relearning_to_code.html
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Marcus Cavalcanti
>>>>>>>> 21 9144-5068
>>>>>>>> www.marcuscavalcanti.net/blog
>>>>>>>>
>>>>>>>>
>>>>>>>> 2011/2/26 Marcus Cavalcanti <[email protected]>
>>>>>>>>
>>>>>>>> Tiago, Controller não tem RN, logo não deve ser testado.
>>>>>>>>>
>>>>>>>>> O que eu disse que não faz sentido é em relação a isso.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Marcus Cavalcanti
>>>>>>>>> 21 9144-5068
>>>>>>>>> www.marcuscavalcanti.net/blog
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> 2011/2/26 Tiago Davi <[email protected]>
>>>>>>>>>
>>>>>>>>> Não faz sentido pois como disse é apenas um exemplo.
>>>>>>>>>>
>>>>>>>>>> Aonde está escrito "queroChamarUmController" eu gostaria de chamar
>>>>>>>>>> um método de um controller qualquer.
>>>>>>>>>>
>>>>>>>>>> Porém não tenho acesso aos controllers mas de qualquer forma estou
>>>>>>>>>> resolvendo o problema com outra lib.
>>>>>>>>>>
>>>>>>>>>> Até.
>>>>>>>>>>
>>>>>>>>>> Em 25 de fevereiro de 2011 20:00, Marcus Cavalcanti <
>>>>>>>>>> [email protected]> escreveu:
>>>>>>>>>>
>>>>>>>>>> Que tipo de teste é esse? hehe não faz o menor sentido
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Marcus Cavalcanti
>>>>>>>>>>> 21 9144-5068
>>>>>>>>>>> www.marcuscavalcanti.net/blog
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> 2011/2/25 Tiago Davi <[email protected]>
>>>>>>>>>>>
>>>>>>>>>>>>  Meu exemplo está assim:
>>>>>>>>>>>>
>>>>>>>>>>>> class TestModuleHome extends UnitTestCase{
>>>>>>>>>>>>  function testInformacoes()
>>>>>>>>>>>>  {
>>>>>>>>>>>> $this->assertEqual("davi", "queroChamarUmController");
>>>>>>>>>>>>  }
>>>>>>>>>>>> }
>>>>>>>>>>>>
>>>>>>>>>>>> Queria saber como posso chamar um método do meu controller e
>>>>>>>>>>>> passar no teste já que não posso herdar o controller e quando 
>>>>>>>>>>>> instâncio
>>>>>>>>>>>> direto ele da erro?
>>>>>>>>>>>>
>>>>>>>>>>>> Ninguém aqui usa essa lib??
>>>>>>>>>>>>
>>>>>>>>>>>> Em 25 de fevereiro de 2011 16:16, Tiago Davi <tiago.asp.net@
>>>>>>>>>>>> gmail.com> escreveu:
>>>>>>>>>>>>
>>>>>>>>>>>> Boa tarde alguém já usou essa lib?
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> http://codeigniter.com/wiki/SimpleTester_-_Unit_testing_library/
>>>>>>>>>>>>>
>>>>>>>>>>>>> Sabe como posso testar um controller usando essa lib mas de
>>>>>>>>>>>>> forma a deixar o teste separado do controller?
>>>>>>>>>>>>>
>>>>>>>>>>>>> Desde já agradeço.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Att.
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Tiago Davi - Desenvolvedor Web.
>>>>>>>>>>>>> http://tiagoaspnet.blogspot.com
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Tiago Davi - Desenvolvedor Web.
>>>>>>>>>>>> http://tiagoaspnet.blogspot.com
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> [email protected]
>>>>>>>>>>>> http://www.codeigniter.com.br
>>>>>>>>>>>>
>>>>>>>>>>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>>>>>>>>>>
>>>>>>>>>>>> ---------------------------
>>>>>>>>>>>> Oportunidade de negócio
>>>>>>>>>>>> http://www.franquiasargohost.net
>>>>>>>>>>>> ---------------------------
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Tiago Davi - Desenvolvedor Web.
>>>>>>>>>> http://tiagoaspnet.blogspot.com
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Tiago Davi - Desenvolvedor Web.
>>>>>>> http://tiagoaspnet.blogspot.com
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Tiago Davi - Desenvolvedor Web.
>>>>>> http://tiagoaspnet.blogspot.com
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Tiago Davi - Desenvolvedor Web.
>>>> http://tiagoaspnet.blogspot.com
>>>>
>>>>
>>>>
>>>
>>> _______________________________________________
>>> [email protected]
>>> http://www.codeigniter.com.br
>>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>>
>>> ---------------------------
>>> Oportunidade de negócio
>>> http://www.franquiasargohost.net
>>> ---------------------------
>>>
>>>
>>
>> _______________________________________________
>> [email protected]
>> http://www.codeigniter.com.br
>> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>>
>> ---------------------------
>> Oportunidade de negócio
>> http://www.franquiasargohost.net
>> ---------------------------
>>
>>
>
>
> --
> Tiago Davi - Desenvolvedor Web.
> http://tiagoaspnet.blogspot.com
>
>
>
> _______________________________________________
> [email protected]
> http://www.codeigniter.com.br
> http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
>
> ---------------------------
> Oportunidade de negócio
> http://www.franquiasargohost.net
> ---------------------------
>
>


-- 
Eric Saboia - eric.saboia.org

Beautiful is better than ugly,
Explicit is better than implicit,
Simple is better than complex,
Complex is better than complicated.

The Zen of Python, by Tim Peters
_______________________________________________
[email protected]
http://www.codeigniter.com.br
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

---------------------------
Oportunidade de negócio
http://www.franquiasargohost.net
---------------------------

Responder a