【发布时间】:2014-10-15 19:21:53
【问题描述】:
这是我写的一个测试 PHPUnit 测试:
<?php
class MyTest extends PHPUnit_Framework_TestCase
{
public function __construct()
{
echo "starting tests\r\n";
parent::__construct();
}
public function provider()
{
return array(array('test'));
}
/**
* @dataProvider provider
*/
public function testProvider($var)
{
$this->assertEquals($var, $var);
//exit($var);
}
}
当我运行它时,我得到以下信息:
There was 1 error:
1) MyTest::testProvider
Missing argument 1 for MyTest::testProvider()
/home/myname/test.php:19
FAILURES!
Tests: 1, Assertions: 0, Errors: 1.
我的问题是……为什么?我该怎么办?
在我正在编写的实际单元测试中(以上只是一个演示问题的测试)我正在测试一个具有多个不同后端引擎的类。我有一个包含一堆测试用例的抽象类和一个名为 $engine 的受保护类变量。然后我有一堆类扩展这个抽象类并在构造函数中设置 $engine 。然后在抽象方法$obj->setEngine($this->engine) 中的每个测试方法中调用以测试相关的特定引擎。但是这种方法似乎破坏了提供者的单元测试,取而代之的是我不确定我应该做什么。
有什么想法吗?
【问题讨论】:
标签: php unit-testing phpunit