【发布时间】: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