【发布时间】:2018-08-05 16:59:37
【问题描述】:
我的场景是我正在测试一个方法,该方法从一个库中调用另一个方法,该库采用一个带有两个键 ['id'=>123, 'timestamp'=>microtime()] 的数组。我可以将此微时间作为我正在测试的方法的参数,但有没有一种方法可以进行此测试,以便我测试除某些键之外的所有键对于被调用的方法是相等的。
$this->foobarLibary->expects($this->once())
->method('saveItem')
->with(['id'=>1, 'timestamp'=>microtime()])
->willReturn(200);
$res = $this->sut->sutMethodThatCallsFoobarSaveItem();
$this->assertTrue($res);
我抱怨timestamp 键不相等,这是真的,因为微时间不同。
此测试现在失败,因为时间不能相等。有解决办法吗?
【问题讨论】:
-
显示测试的功能,也许这有帮助。测试本身并不过分。
-
sutMethodThatCallsFoobarSaveItem是正在测试的函数。
标签: php unit-testing mocking phpunit