Rez*_*a S 9 php phpunit unit-testing
因此,每当我在PHPUnit中遇到意外异常时(例如由于完整性检查而无法插入到db中),我的测试会失败,并且在没有运行tearDownAfterClass()函数的情况下会出错.这将使我的数据库处于凌乱的状态,因此我必须手动去清理它.有没有办法确保tearDownAfterClass()始终执行?
tearDownAfterClass即使测试方法中存在错误和失败,PHPUnit也会调用.它会不会当把它setUpBeforeClass抛出一个异常.为了确保清理数据库,请将清理代码移动到您调用的新方法tearDownAfterClass和catch子句中setUpBeforeClass.
function FooTest extends PHPUnit_Framework_TestCase
{
static function setUpBeforeClass() {
try {
... setup code that might fail ...
}
catch (Exception $e) {
self::cleanupDatabase();
throw $e; // so the tests will be skipped
}
}
static function tearDownAfterClass() {
self::cleanupDatabase();
}
static function cleanupDatabase() {
... clean ...
}
... test methods ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3841 次 |
| 最近记录: |