一尘不染

模拟PHPUnit-具有不同参数的同一方法的多个配置

php

是否可以通过这种方式配置PHPUnit模拟?

$context = $this->getMockBuilder('Context')
   ->getMock();

$context->expects($this->any())
   ->method('offsetGet')
   ->with('Matcher')
   ->will($this->returnValue(new Matcher()));

$context->expects($this->any())
   ->method('offsetGet')
   ->with('Logger')
   ->will($this->returnValue(new Logger()));

我使用PHPUnit 3.5.10,当我要求Matcher时,它会失败,因为它需要“
Logger”参数。就像第二个期望重写了第一个期望一样,但是当我转储模拟时,一切看起来都还不错。


阅读 282

收藏
2020-05-29

共1个答案

一尘不染

从PHPUnit
3.6开始,$this->returnValueMap()根据给定给方法存根的参数,可以使用它来返回不同的值。

2020-05-29