我有一个使用 ServiceB 的 ClassA。在某种情况下,ClassA 应该最终不会调用 ServiceB 的任何方法,除了一个。我现在想对此进行测试并验证确实没有调用其他方法。
这可以按如下方式完成:
$classA->expects( $this->once() )->method( 'first_method' );
$classA->expects( $this->never() )->method( 'second_method' );
$classA->expects( $this->never() )->method( 'third_method' );
...
有没有办法简单地声明“不应该首先在这个对象上调用任何方法”,而不是必须为每个方法指定一个限制?
我目前有这种可行的方法,尽管我的测试用例依赖于 PHPUnit 的两个有点内部的类,我宁愿避免。
$schema->expects( $this->never() )
->method( new PHPUnit_Framework_Constraint_Not( new PHPUnit_Framework_Constraint_IsEqual( 'addField' ) ) );
有没有办法使用流畅的界面做同样的事情?