使用多个值运行相同的测试

  • 本文关键字:测试 运行 phpspec
  • 更新时间 :
  • 英文 :

使用

phpspec,是否可以使用注释或类似值运行具有多个值的相同测试?

例如,假设我有以下测试:

public function it_should_return_sum_of_numbers_passed()
{
   $number1 = 1;
   $number2 = 1;
   $expectedresult = $number1 + $number2;
   $this->add($number1, $number2)->shouldReturn($expectedResult);
}

没关系。 但它只测试一组参数。 传递 -1 和 1、-1 和 -2 等怎么样? 公平地说,这是一个大大简化的场景,但这意味着必须为每个边缘情况创建一个新方法。

phpspec 中没有数据提供程序(至少现在还没有)。你必须做这样的事情:

public function it_should_return_sum_of_numbers_passed()
{
    $examples = array(
        array(1, 2, 3),
        array(-1, 1, 0),
        array(-1, -2, -3)
    );
    foreach ($examples as $example) {
        $number1 = $example[0];
        $number2 = $example[1];
        $expectedResult = $example[2];
        $this->add($number1, $number2)->shouldReturn($expectedResult);
    }
}

相关内容

  • 没有找到相关文章

最新更新