【问题标题】:phpspec - running same test with multiple valuesphpspec - 使用多个值运行相同的测试
【发布时间】:2013-10-17 23:35:47
【问题描述】:

使用 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


    【解决方案1】:

    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);
        }
    }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-05
    • 2016-07-20
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多