使用Mockery的'with'期望来测试对象的相等性

时间:2014-08-03 21:36:53

标签: unit-testing tdd phpunit mockery

我正在使用Mockery来定义一个期望,即我的mock上的函数应该以对象作为其参数来调用。我在我的测试中声明了预期的对象。问题是测试中的对象与我的代码中的对象的引用不同 - 有没有办法断言两个对象的相等而不是确切的引用?

测试片段

$resource = new Resource("Test");

$this->aThing
   ->shouldReceive('call')
   ->with($resource)
   ->andReturn(true)
   ->once();

代码片段

public function respondWithString()
{
    // assume $this->aThing is the injected mock

    $resource = new Resource("Test");
    $response = $this->aThing->call($resource);
    return $response;
}

1 个答案:

答案 0 :(得分:0)

这应该有效:

$resource = new Resource("Test");

$this->aThing
   ->shouldReceive('call')
   ->with(Mockery::mustBe($resource))
   ->andReturn(true)
   ->once();