PHPunit 调用魔术方法

PHPunit call magic methods

我有法宝getData。是否可以在单元测试中调用以下内容:

    $this->attributeMock
        ->method('getData')
        ->with('additional_data')
        ->willReturn('some value');

    $this->attributeMock
        ->method('getData')
        ->with('is_default')
        ->willReturn('something');

当我这样做时,我得到了:

Failed asserting that two strings are equal.
--- Expected
+++ Actual @@ @@
-'is_default'
+'additional_data'

还有别的方法吗?

您应该使用 PHPUnit at() 方法来检查特定索引处的方法调用。

所以你可以使用下面的代码:

$this->attributeMock
    ->expects($this->at(1))
    ->method('getData')
    ->with('additional_data')
    ->willReturn('some value');

$this->attributeMock
    ->expects($this->at(0))
    ->method('getData')
    ->with('is_default')
    ->willReturn('something');

您可以参考以下文章:

http://www.andrejfarkas.com/2012/07/phpunit-at-method-to-check-method-invocation-at-certain-index/