1

我有下面的代码,我希望在运行时会失败,因为该类DoesNothing不使用模拟类或在其上调用任何必需的方法。

<?php
class DoesNothing
{

}

class DoesNothingTest extends YourMockeryTestCase
{
    /**
     * @test
     */
    public function somethingIsCalled()
    {
        $this->mock = Mockery::mock();

        $keys = array(
            '1234',
            'abcxyz',
            '*&(%&^$-*/~@:{}',
            ')*&GA^FAUIB(*',
            '',
            ' ',
        );

        foreach ($keys as $key) {
            $this->mock
                ->shouldReceive('remove')
                ->atLeast()->times(1)
                ->with($key);
        }
        $var = new DoesNothing($this->mock);
    }
}

但是当我运行它时,它通过了。我希望它会说“未调用方法删除”等。

有什么问题?与 Mockery 如何与 PHPUnit 对话有关?

谢谢,马丁

编辑:我还应该提到我们正在使用Etsy 的 PHPExtensions将其集成到 PHPUnit

4

1 回答 1

5

您的方法名称应以 开头test,否则 PHPUnit 不会将其确定为测试。

public function testSomethingIsCalled()

编辑

您必须调用Mockery::close()您的拆卸方法才能执行期望。IE

/**
 * Tear down
 */
public function tearDown()
{
    \Mockery::close();
}
于 2013-03-08T20:50:05.400 回答