我有一个名为supportsClass的布尔方法(我知道但我相信BDD / TDD一直都是这个),它是作为这个接口的一部分实现的。
的Symfony \元器件\安全\核心\用户\ UserProviderInterface
在我的规范中,我正在测试这种方法
$this->supportsClass(get_class($user))->ShouldReturn(false).
用户是先知对象。当我运行我的规范时,我会抛出这个异常
[错误:TypeError(“传递给PhpSpec \ Exception \ ExceptionFactory :: methodNotFound()的参数1必须是字符串类型,给定为null
我无法找到使用任何===或==匹配器进行此规范传递的方法。我能找到的唯一布尔特定匹配器就是这些
$this->shouldBeActive(); // isActive() method should return true
$this->shouldHaveSomething(); // hasSomething() method should return true
$this->shouldNotBeActive(); // isActive() method should return false
$this->shouldNotHaveSomething(); // hasSomething() method should return false
正如您所看到的,测试中的方法与这些方法都不匹配。如果有人可以澄清如何测试没有is / has的布尔方法我会很感激。
答案 0 :(得分:1)
您应该尝试$this->supportsClass(get_class($user))->shouldReturn(false).
(小写应该在shouldReturn方法名称中)