phpunit – Dataprovider可以从setUp获得连接
通过setUp()连接到数据库失败
class ChanTest extends PHPUnit_Framework_TestCase { protected $db; protected function setUp() { $this->db = new CoreDatabase('unitest'); } /** * @dataProvider testProvider */ public function testData($a,$b,$c) { $this->assertEquals($a + $b,$c); } public function testProvider() { $this->db->query('SELECT `a`,`b`,`c` FROM `units`'); return $this->db->rows(); } } 连接到数据库本身工作 class ChanTest extends PHPUnit_Framework_TestCase { protected $db; protected function setUp() { $this->db = new CoreDatabase('unitest'); } public function testData($a,$c) { $this->db->query('SELECT `a`,`c` FROM `units`'); foreach ($this->db->rows() as $item) { $this->assertEquals($item['a'] + $item['b'],$item['c']); } } } 如果我通过dataProvider通过setUp函数连接数据库,它会响应致命错误:调用成员函数query(),但如果连接到数据库本身有效,dataProvider可以获取setUp函数的设置吗?
这是设计的:为了确定测试的数量,PHPUnit在实际运行测试(和setUp方法)之前运行dataProviders.
从manual on DataProviders:
在你的情况下,我会为数据库使用单例/实例模式. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |