test
写测试是一个初级程序员和中级程序员的分界线。
测试驱动开发(TDD)
测试驱动开发就是在开发的时候测试应用方方面面的性能。具体是指开发前书写测试用例,开发时通过测试,或者类库构建完成后再进行测试。测试对应用是非常重要的,不测试就启动一个应用相当于不带降落伞从 30 楼跳下。
PHP 下的测试
PHP 原生虽然未能提供测试的内建特性,但是其他测试框架依然可以用来实现这个功能。应用最广泛的类库之一就是 PHPUnit,它是一个非常强大的工具,提供了许多功能。
Yii2 下的测试
CodeCeption是一个全栈的PHP测试框架,所有资料参考 Yii2 的 codeception official document
Install via Composer
composer global require "codeception/codeception" --dev
然后就拥有了命令 codecept
Once you created a project from a basic template you should see folder tests and codeception.yml configuration file.
basic
|--tests
|--codeception.yml
由于Yii2框架已经整合了Codeception,所以不需要运行"codecept bootstrap"命令来生成配置文件 codeception.yml 和目录 tests。我们需要确保当前程序可以正常运行,然后修改配置文件,设置好测试数据库的参数,然后运行测试命令:
./vendor/bin/codecept run
这样就会执行 Yii2 自带的简单测试,如果一切正常,那么所有测试都应该是通过的。
如果需要运行 acceptance tests(验收测试),还需要一个无头浏览器:
# for Firefox
java -jar -Dwebdriver.gecko.driver=/usr/bin/geckodriver ~/selenium-server-standalone-3.4.0.jar
https://github.com/yiisoft/yii2-app-basic/blob/master/README.md#testing
JavaScript 下的测试
一般使用以下测试套件:
测试套件的组成:
- 断言,使用断言执行一个测试;
- 测试组,使用一个测试组包含多个断言;
- 异步测试,测试的结果在一段不确定的时间后会返回;