我正在学习这个惊人的Test Framework
( Codeception )我已经写了一堆测试作为练习,并且所有测试都正确传递。
显然,我遇到了关于测试的体系结构和可重用性以及如何使用不同的Class来构建测试的最佳实践的相同问题。
Cest和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');
}
}
此测试正确传递。
现在,如果我想在我的signIn()
中使用functional tests
方法,那就非常直接地使用它。
问题来自于我必须使用Acceptance
创建Selenium
测试,并且需要完全相同的过程才能让用户登录,我需要重用完全相同的方法在这种情况下,我不能用于接受。
那么女巫是分享和帮助全球帮手的最佳做法吗?
答案 0 :(得分:1)
这位助手已经全球化了#39; 您需要的一切是将此助手添加到所需的套件配置 - acceptance.suite.yml:
class_name: AcceptanceTester
modules:
enabled: [AcceptanceHelper, YourHelper]
然后不要忘记运行
php codeception.phar build