在PHPUnit中,如何测试某个方法是否从未被某些参数调用?我的意思是它可以用任何其他参数甚至多次调用,但从来没有与某个特定的调用。期望一种方法永远不会被某些参数调用
0
A
回答
1
看起来它使用标准的方式是不可能的,所以你可以使用一个回调指定的返回值,检查那里的讨论(有点棘手,但似乎工作):
$mock = $thi->getMockBuilder('MyClass')->getMock();
$mock->expects($this->any())
->method('myMethod')
->willReturnCallback(function() {
$args = func_get_args();
$disallowedArgs = [1, 'abc'];
$this->assertNotEquals($disallowedArgs, $args);
})
;
0
传递不应该传递给方法的参数,如果方法抛出一个(它可能应该),则断言期望异常。
相关问题
- 1. textFieldShouldReturn - completionHandler中的某些方法永远不会被调用
- 2. UICollectionViewLayout方法永远不会被调用
- 3. NSFilePresenter方法永远不会被调用
- 4. onreadystatechange函数永远不会被调用
- 5. Parse.com Facebook API的logIn()方法。回调永远不会被调用
- 6. 永远不会调用UIPopoverControllerDelegate方法
- 7. GCMBaseIntentService:onMessage方法永远不会调用
- 8. OnLocationChanged回调永远不会被调用
- 9. System.Threading.Timer回调永远不会被调用
- 10. 实体框架种子的方法永远不会调用
- 11. 访问MethodVisitor的参数永远不会被调用
- 12. iOS IBAction方法永远不会被调用
- 13. UICollectionViewLayout和方法layoutAttributesForItem永远不会被调用
- 14. 为什么我的shouldOverrideLoading方法永远不会被调用?
- 15. OnGestureListener onDown方法永远不会被调用
- 16. 为什么Downloadlistener的OnDownloadStart方法永远不会被调用?
- 17. Viewcontroller Dealloc方法永远不会被调用
- 18. 继承UIView。 init方法永远不会被调用
- 19. ObjC委托方法永远不会被调用
- 20. 重写的DialogViewController方法永远不会被调用?
- 21. 为什么Android WebChromeClient的onCreateWindow方法永远不会被调用?
- 22. NSFilePresenter -presentedSubitemDidAppearAtURL:方法永远不会被调用
- 23. 为什么NSFilePresenter协议方法永远不会被调用?
- 24. Android - OnDraw()方法永远不会被调用
- 25. Java:我的paintComponents()方法永远不会被调用
- 26. MyApplication中的方法永远不会被调用
- 27. RxScala ConnectableObservable.doOnSubscribe永远不会被调用?
- 28. DragEvent.ACTION_DROP永远不会被调用
- 29. 星火:onApplicationStart永远不会被调用
- 30. asp.net MvcHandler.ProcessRequest永远不会被调用
你正在假设真正的方法应该如何工作。问题是关于嘲笑这种方法。也许参数对于真实方法是有利的,但在测试环境中无效。 – gontrollez