【发布时间】:2014-05-23 07:35:50
【问题描述】:
我编写了一个Decimal 库来执行大十进制数的计算。这个库依赖于一个Calculator 接口,目前有 3 个实现:
-
GmpCalculator使用 GMP 扩展; -
BcMathCalculator使用 BC 数学扩展; -
NativeCalculator在上述都不可用时在 PHP 中本地执行计算。
我的测试套件测试Decimal 类本身,而不管使用中的Calculator 实现:
class DecimalTest extends PHPUnit_Framework_TestCase
{
public function testPlus() { ... }
public function testMinus() { ... }
public function testMultipliedBy() { ... }
public function testDividedBy() { ... }
}
我想运行整个测试套件 3 次,每次通过在测试套件运行之前运行一行代码来更改 Calculator 实现。
PHPUnit 可以做到这一点吗?
请注意,这是 @dataProvider 的一个用例,因为我不想为了测试所有实现而使用数据提供者注释每个测试方法,而且我已经在我的测试套件中使用数据提供者,所以这甚至是不可能的。
【问题讨论】: