我有以下問題:
我想測試控制器,如果在調度過程中沒有發生異常,但控制器使用外部庫,它有自己的phpunit
測試。這個庫也使用外部庫與自己的測試等等...模擬PHPUnit中的所有有效方法
所以我的應用程序看起來類似於本圖:
request -> router -> dispatch -> controller -> view
如果在此procces任何錯誤occures。應用程序拋出異常。我想測試控制器,但現在我必須編寫+50行代碼來模擬所需的所有對象。
圖像例如,我從控制器傳遞到view
。
在view
我有這樣的事情:
<?php echo $form->openTag('form'); ?>
<?php echo $form->openTag('fieldset'); ?>
<?php echo $form->label('firstName'); ?>
<?php echo $form->input('firstName'); ?>
<?php echo $form->errorMessages('firstName'); ?>
<?php echo $form->closeTag('fieldset'); ?>
<?php echo $form->openTag('fieldset'); ?>
<?php echo $form->label('gender'); ?>
<?php echo $form->radio('gender'); ?>
<?php echo $form->errorMessages('gender'); ?>
<?php echo $form->closeTag('gender'); ?>
...
<?php echo $form->closeTag('form'); ?>
比方說,我有形式與20個輸入......你明白我的意思?我必須模擬所有可用的方法來通過我的測試。
可以用所有有效的方法來模擬對象嗎?
我的意思是如果有一種方法來模擬類將有所有方法有效?不需要定義任何東西。
如果應用程序需要類A
的對象,它將返回類A
的對象。
如果應用程序需要陣列將返回陣列
等。
不,這不是嘲笑的作品 - 你的嘲笑不能假設你在運行時給你什麼,而是你必須指示你的嘲笑,並讓它們返回你想要測試的東西那個時間點。 第三方依賴有其自己的單元測試的事實應該給你足夠的覆蓋,儘管...你應該嘲笑這些依賴並且有一系列單元測試,確保你的控制器處理任何依賴可能適當返回的東西。 –
所以,你說我必須編寫+50行代碼才能模擬該窗體的工作正常嗎? – user7686493