在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. UICollectionViewLayout方法永遠不會被調用
- 2. NSFilePresenter方法永遠不會被調用
- 3. onreadystatechange函數永遠不會被調用
- 4. 永遠不會調用UIPopoverControllerDelegate方法
- 5. 訪問MethodVisitor的參數永遠不會被調用
- 6. 繼承UIView。 init方法永遠不會被調用
- 7. Viewcontroller Dealloc方法永遠不會被調用
- 8. 爲什麼Android WebChromeClient的onCreateWindow方法永遠不會被調用?
- 9. 爲什麼我的shouldOverrideLoading方法永遠不會被調用?
- 10. ObjC委託方法永遠不會被調用
- 11. iOS IBAction方法永遠不會被調用
- 12. OnGestureListener onDown方法永遠不會被調用
- 13. Android - OnDraw()方法永遠不會被調用
- 14. Firebase populateViewHolder永遠不會被調用
- 15. kubernetes的ScheduledJob永遠不會被調用
- 16. AFNetworking AFHTTPRequestOperation塊永遠不會被調用
- 17. WakefulBroadcastReceiver永遠不會被調用
- 18. 調用UIViewController,永遠不會被釋放
- 19. LocationServices.FusedLocationApi.requestLocationUpdates永遠不會被調用
- 20. OnListItemClick永遠不會被調用?
- 21. onFinishInflate()永遠不會被調用
- 22. 訂閱Observable.forkJoin永遠不會被調用
- 23. Amazon S3 TransferListener永遠不會被調用
- 24. didRegisterForRemoteNotificationsWithDeviceToken永遠不會被調用(Unity3D)
- 25. OnApplyTemplate()永遠不會被調用
- 26. UIScrollView touchesShouldCancelInContentView永遠不會被調用
- 27. 指令永遠不會被調用angularjs
- 28. DialogInterface.OnDismissListener.onDismiss()永遠不會被調用
- 29. heightForRowAtIndexPath永遠不會被調用iOS9
- 30. Android:onTouch()永遠不會被調用?
你正在假設真正的方法應該如何工作。問題是關於嘲笑這種方法。也許參數對於真實方法是有利的,但在測試環境中無效。 – gontrollez