Open lukBarros opened 8 years ago
can you give more concrete example of what should be generated based on which input?
@cebe case:
Case generete one crud, based in one model, this output include the class 'crud_name_xxx_test' type featuring test, in the sequence, access list and check some elements with create buttom ou grid from data AR. Test if click in the new register buttom redirect to form, and in the form exists fields basics do AR....
This is util, I'm using gii this is on 'hand on road' for generete basic cruds
@cebe tink about it?
Olá @lukBarros,
Se você estiver se referindo a gerar testes para as operações de CRUD, isto não deveria ser necessário visto que o ActiveRecord já possui seus testes para verificar o banco e as classes Schema também já possuem testes (até onde sei). O que o CRUD faz é gerar os campos baseados em Schemas e preparar a estrutura para salvar os dados (baseado em ActiveRecord). Portanto, podemos dizer que, implicitamente, já existem testes.
Criar testes para (re)verificar isso talvez se tornasse bem redundante.
@slinstj isso é fato, me parece correto a afirmação de redundancia. Mas, porém por exemplo, um teste de aceitação (navegação UI) não é coberto pelos tests por exemplo, e quando se mudar o crud depois de gerado eles quebram claro, e aí já tem o ponto de onde tem o test gerado para resolver até passar.
Isso pode ser uma mão na roda para cultura do teste de soft.
Pense em não só testes de unidade, mas de funcionalidade, de aceitação por exemplo.
Acceptance/functional testing is a very specific per app testing. There's no an useful general test standard. Additionally, how would you manage the webdriver (selenium, etc) dependency?
Unit testing generation is just a codecept cli command far.
I can't see a valid use case. It is up to a core developer.
Acceptance Testing and Functional Are Possible with Yii2 yes!
Yii2 behind a code suite codeception in the core component :
https://github.com/yiisoft/yii2-codeception
With codeception you can do something like acceptance test without using a recorded solution via webdrive and interaction via UI. Just encode it in the form of written test.
For more information codeception : http://codeception.com/
Acceptance Testing and Functional Are Possible with Yii2 yes!
When have I said it isn't?
With codeception you can do something like acceptance test without using a recorded solution via webdrive and interaction via UI. Just encode it in the form of written test.
Yeah, this is what the acceptance are meant to do.
You should read my message again, if you want.
Excuse me!
My English is basic , I get it wrong .
I did not understand exactly what you wanted to talk.
Tranquilo, te explico depois, com mais tempo.
Eu disse que testes de aceitação ou funcionais são muito específicos para cada applicação. Não existe um padrão, mesmo que genérico, que sirva pra todas as aplicações. E ainda que se inventasse um, você teria a dependência de um webdriver, que é necessário para rodar testes de aceitação, ou seja, seria necessário ou instalar o Selenium Server (que é java) ou usar o PhantonJs browser.
Quanto aos testes unit, são tão fáceis de gerar quanto usar um simples comando no cli. O próprio codeception tem seu generate:test
.
Em suma é isso. Mas claro, cabe aos desenvolvedores yii decidir se sua ideia deve ou não ser implementada (ou você mesmo fechar o issue). :+1:
Tudo bem entendi. Mas o que quero dizer é um teste funcional para o crud gerado, ou seja, crud gerado, rodou testes passam todos, mas se por exemplo o cara tirar 1 campo do form ou mudar o layout de botões quebra o teste, isso implementa uma cultura de testes, pré gerados juntos com o gii.
Realmente agora entendi o que você falou e tem sentido. Mas o Selenium pode ser em parte subistituido por exemplo pelo codeeception com seu teste de aceitação, veja no link um exemplo, esse:
http://codeception.com/docs/03-AcceptanceTests
Olhe o exemplo:
<?php $I->amOnPage('/login'); $I->fillField('username', 'davert'); $I->fillField('password', 'qwerty'); $I->click('LOGIN'); $I->see('Welcome, Davert!');
Yii aponta que terá suporte e forma definida de implementar e executar isso, já está sendo documentado em:
https://github.com/yiisoft/yii2-app-basic/blob/master/tests/README.md
De: http://codeception.com/docs/03-AcceptanceTests
This scenario can be performed either by a simple PHP Browser or by a browser with Selenium WebDriver. We will start writing our first acceptance tests with a PhpBrowser.
Codeception depende de um webdriver. Se usar o phpbrowser, javascritp e ajax não funcionam, então você estará bem limitado e não conseguirá fazer nem mesmo testes simples de aceitação.
Hi mans! That good end year?
The GII powered fantastic for every cases, by prototipations, by scaffolding, by simples cruds massive in the long projects, by generete finale code...
If the codeeception avaliable, GII have generate funcional tests? or unit Test for AR model? Its is one generetor for scaffolding testing scope, option in the screem on model generetor (unit test) or crud (feature test) and orther tips.
What do you think of this? Perhaps this skunk inspired me a lot!