【问题标题】:phpunit w/ laravel: missing argument when using providers带有 laravel 的 phpunit:使用提供程序时缺少参数
【发布时间】:2014-07-29 17:43:12
【问题描述】:

我正在运行带有 Laravel 的 PHPUnit。这是我的测试:

class UserTest extends TestCase {

public function testSluggifyReturnsSluggifiedString($originalString, $expectedResult)
{
    $url = new User();
    $result = $url->sluggify($originalString);

    $this->assertEquals($expectedResult, $result);

}
public function providerTestSluggifyReturnsSluggifiedString()
{
    return array(
        array('This string will be sluggified', 'this-string-will-be-sluggified'),
        array('THIS STRING WILL BE SLUGGIFIED', 'this-string-will-be-sluggified'),
        array('This1 string2 will3 be 44 sluggified10', 'this1-string2-will3-be-44-sluggified10'),
        array('This! @string#$ %$will ()be "sluggified', 'this-string-will-be-sluggified'),
        array("Tänk efter nu – förr'n vi föser dig bort", 'tank-efter-nu-forrn-vi-foser-dig-bort'),
        array('', '')
    );
}

}

当我熟悉单元测试时,我只是将sluggify() 函数添加到 User 类的底部。

我得到这个错误:

There was 1 error:

1) UserTest::testSluggifyReturnsSluggifiedString
ErrorException: Missing argument 1 for UserTest::testSluggifyReturnsSluggifiedString()

如果我更改测试以定义两个参数 (public function testSluggifyReturnsSluggifiedString($originalString='test', $expectedResult='test')),测试运行良好。由于某种原因,它没有读取提供者数据。

我怀疑这是关于 Laravel 设置的问题,但我在文档中找不到任何内容可以为我指明正确的方向。我做错了什么?

【问题讨论】:

    标签: php unit-testing laravel phpunit provider


    【解决方案1】:

    来自Data Provider 上的 PHPUnit 文档:

    要使用的数据提供者方法是使用@dataProvider 注解指定的。

    所以你必须在你的测试方法之上添加注解,例如:

    class UserTest extends TestCase {
    
        /**
         * @dataProvider providerTestSluggifyReturnsSluggifiedString
         */
        public function testSluggifyReturnsSluggifiedString($originalString, $expectedResult)
        {
            // ...
        }
    
        public function providerTestSluggifyReturnsSluggifiedString()
        {
            // ...
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-10-09
      • 2013-09-12
      • 2017-05-04
      • 2014-12-29
      • 1970-01-01
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 2013-01-09
      相关资源
      最近更新 更多