我正在学习这个神奇的Test Framework
(Codeception)我已经写了一堆测试作为练习,所有的都正确通过了
显然,我遇到了同样的问题,关于架构和测试的可重用性,以及如何使用不同的类来构建测试的最佳实践。
Cest and Cept:
我如何在文档上阅读测试cept
和cest
的类型。我试着写了两种测试,但我所做的数量仍然不明白我什么时候才能最好地利用它们。我在文档中读到的唯一一件事是,如果您的测试太长,创建Cest Class
是最好的方法。
要为我的登录表单创建一个functional test
,我这样构建它:
$I = new TestGuy($scenario);
$I->am('A member');
$I->wantTo('Login in the application');
$I->amOnPage('/');
$I->signIn(); // This custom method belongs to a helper
$I->seeInCurrentUrl('/home');
复习SignIn
方法
/**
* Class TestHelper
*
* @package Codeception'Module
*/
class TestHelper extends 'Codeception'Module
{
/**
* Sign In a user
*/
public function signIn()
{
$email = 'test@test.com';
$password = 'Hello123';
$username = 'user3';
// create a dummy account
$this->haveAnAccount(compact('email','password','username'));
$I = $this->getModule('Laravel4');
$I->fillField('.navbar-collapse input[name="email"]',$email);
$I->fillField('.navbar-collapse input[name="password"]',$password);
$I->click('LOG IN');
}
}
测试正常通过。
现在如果我想在我的functional tests
中使用signIn()
方法很简单,只要使用它。
当我不得不用Selenium
创建Acceptance
测试时,问题出现了,它需要完全相同的过程来让用户登录,我需要重用完全相同的方法,在这种情况下,我不能用于接受。
那么什么是最好的实践来分享和使全局的这个帮手?
这个帮助器已经是"全局的"。您所需要做的就是将这个帮助器添加到所需的套件配置- accept .suite.yml:
class_name: AcceptanceTester
modules:
enabled: [AcceptanceHelper, YourHelper]
然后不要忘记运行
php codeception.phar build