摘要:我想在我的测试中使用Module断言。使用Codeception,Symfony2功能测试服务如何添加断言?
此前我已经使用PHPUnit测试测试了Symfony2服务。这很好,但我想使用一些Codeception Symfony2模块提供的工具以及更清晰的测试风格。
我创建了一个新的套件具有以下services.suite.yml
class_name: ServiceGuy
modules:
enabled: [Symfony2, Doctrine2, Filesystem, ServiceHelper]
我跑构建和生成:CEST并与
public function getServiceUrl(\ServiceGuy $I) {
$this->myservice = $I->grabServiceFromContainer("myservice");
$I->wantTo("get service URL");
$I->seeTrue("http://example.com/services"
== $this->ecservice->getServiceUrl());
}
该测试通过一个ServiceCest.php测试文件因为我向我的ServiceHelper.php文件添加了断言功能。
class ServiceHelper extends \Codeception\Module {
function seeTrue($flag) {
$this->assertTrue($flag);
}
}
Module类有一套丰富的断言函数,我希望能够直接在我的测试中使用。但我不认为模块对象可用于测试。不得不向ServiceHelper添加一系列断言函数似乎是重复的。 有没有更好的方法?
例如在phpunit测试中,我可能会有这些断言。
$ station = $ ecservice-> getStation(“Auckland”);
$ this-> assertEquals(1,count($ stations)); $ this-> assertEquals('Auckland',$ station-> getDisplayName());
我的问题是,是否有办法在功能测试中拥有所有这些断言,或者是否需要将大量特定于测试的断言移动到助手中。
该单位模块似乎提供了许多这些设施 - 但已被弃用。我试过把\ PHPUnit_Framework_Assert :: assertEquals(1,count($ stations));测试中的 - 但这会引发未由测试工具处理的失败的异常。
感谢安德鲁
PS我标签这个“codeception”,但我没有点呢。也许别人可以。