验收测试 - 入门

  • 作者:KK

  • 发表日期:2015.12.13


介绍

单元测试主要针对函数/方法做测试,而验收测试则是主要针对页面做测试

  • 验收测试在Codeception里的名词是Acceptance

  • 测试用例的存放目录是/tests/acceptance

  • 配置文件是/tests/acceptance.suite.yml,但配置内容跟单元测试并不完全相同

  • 运行验收测试用例之前会运行/tests/acceptance/_bootstrap.php

  • 像单元测试一样,默认添加了一个空模块,你猜到了,就是/tests/_support/AcceptanceHelper.php!

  • 创建验收测试的命令是php E:\codecept.phar generate:cept acceptance IndexPage大概这样,下面会介绍


来来来聪明的小孩,咱们开始配置和编辑

开一下cmd谢谢

E:
cd project1-tests
php E:\codecept.phar generate:cept acceptance IndexPage

好了,然后提示E:\project1-tests\tests\acceptance\IndexPageCept.php已经创建好了,咱们去打开它准备编辑一下

不过另外要知道的是,接下来我们要针对页面进行测试,所以要先确定针对哪个页面做测试呢?这样吧,针对我这个博客网站的页面进行测试吧

先打开acceptance.suite.yml这个配置文件,修改modules - config - PhpBrowser - url这个配置的值,它默认值应该是http://localhost/myapp/的,我们修改成http://www.kkh86.com,这样就意味着接下来的测试主要是针对这个网站了,当然要跨网站的时候也是有办法的,再说吧

开始编写IndexPageCept.php,刚才的命令生成这个测试用例之后,它里面应该是自带了大概这样的代码的:

use project1_tests\AcceptanceTester;
$I = new AcceptanceTester($scenario);
$I->wantTo('perform actions and see result');

我们可以不修改这些,在下面第4行继续增加代码:

$I->amOnPage('/');	//切换到配置站点 http://www.kkh86.com 的 / 页面,拼起来就是 http://www.kkh86.com/
$I->see('我叫KK');	//断言可以在这个页面里看到指定的文字

运行和结果

这是很简单的测试代码,使用php E:\codecept.phar run acceptance IndexPageCept来运行它,输出结果应该是

OK (1 test, 1 assertion)

就是运行了1个测试用例,1次断言,测试通过,那你将$I->see('我叫KK')改成$I->see('我叫XX')再运行看看结果,失败了吧!?

我就不把运行结果贴出来了,因为经过之前的单元测试知识学习,你已经会简单地查看测试结果了,不然的话就是在低估你的智商了对吧哈哈-_-