PHPUnit数据提供程序错误

4 php phpunit unit-testing

所以我刚开始使用PHPUnit,我正在为一个非常简单的库编写测试.它只包含两个类,所以我认为这将是一个很好的起点,所以我可以了解单元测试的工作方式.

我做了一流的测试没有任何问题,但第二次让我头疼,因为我无法弄清楚这是什么错.我的数据提供者似乎有些错误.

<?php

use PIFlex\Roulette\Roulette;

class RouletteTest extends PHPUnit_Framework_TestCase
{
    protected $roulette;

    public function setUp()
    {
        $this->roulette = new Roulette();
    }

    /*
     * @dataProvider addItemDataProvider
     */
    public function testAddItem($item)
    {
        $this->assertInstanceOf(
            'PIFlex\Roulette\Roulette',
            $this->roulette->addItem($item, 1)
        );
    }

    public function addItemDataProvider()
    {
        return array(
            array("string"),
            array(1),
        );
    }
}
Run Code Online (Sandbox Code Playgroud)

它抛出以下错误:

There was 1 error:

1) RouletteTest::testAddItem
Missing argument 1 for RouletteTest::testAddItem()

/home/igor/Dropbox/www/Github/PIFlexRoulette/test/PHPUnit/Roulette/RouletteTest.php:22

FAILURES!
Tests: 12, Assertions: 11, Errors: 1.
Run Code Online (Sandbox Code Playgroud)

Cyp*_*ian 25

你有错误的注释评论.它应该以"**"开头,所以只需更改:

/*
 * @dataProvider addItemDataProvider
 */
Run Code Online (Sandbox Code Playgroud)

成:

/**
 * @dataProvider addItemDataProvider
 */
Run Code Online (Sandbox Code Playgroud)