class ChanTest extends PHPUnit_Framework_TestCase
{
protected $db;
protected function setUp()
{
$this->db = new Core\Database('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();
}
}
Run Code Online (Sandbox Code Playgroud)
class ChanTest extends PHPUnit_Framework_TestCase
{
protected $db;
protected function setUp()
{
$this->db = new Core\Database('unitest');
}
public function testData($a, $b, $c)
{
$this->db->query('SELECT `a`, `b`, `c` FROM `units`');
foreach ($this->db->rows() as $item) {
$this->assertEquals($item['a'] + $item['b'], $item['c']);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我通过dataProvider连接数据库setUp function,它会响应Fatal error: Call to a member function query(),但如果连接数据库本身有效,可以dataProvider得到setUp function设置吗?
Mel*_*lle 15
这是设计的:为了确定测试的数量,PHPUnit在实际运行测试(和setUp方法)之前运行dataProviders.
注意:所有数据提供程序都在调用setUpBeforeClass静态方法和第一次调用setUp方法之前执行.因此,您无法从数据提供程序中访问您在其中创建的任何变量.这是PHPUnit能够计算测试总数所必需的.
在你的情况下,我会为数据库使用单例/实例模式.
| 归档时间: |
|
| 查看次数: |
5644 次 |
| 最近记录: |