2011-08-08 80 views
0

我用Kohana 3(IDE:Netbeans)做了一些PHP,並且爲編寫測試代碼感到興奮。這聽起來很酷,但我沒有什麼複雜和煩惱。Kohana和PhpUnit在Netbeans

  1. 爲什麼在瀏覽器中使用Kohana unittest模塊比在Netbeans或命令行中運行測試快5倍?

  2. 我怎麼能排除所有kohana內部測試?在PHPUnit .xml配置文件中?

  3. 爲什麼當我在Netbeans面板上運行任何測試時,有兩個條目 - 一個是黃色三角形(表示'文件x跳過'),另一個是正常測試結果。我確實得到了每個測試的雙重輸入,也包括來自Kohana的原生測試。我不介意,但這很奇怪。

  4. 遍佈整個Web頁面,我看到PHPUnit的示例,教程和截屏視頻,其中提供了添加兩個數字或顯示名稱或執行一些其他瑣碎事情的示例類和方法。我已經學會了做這些斷言,但是我怎麼能在Kohana中測試我的代碼呢?我的模型是90%ORM的東西。控制器?怎麼樣?任何'How-tos'和例子都是值得歡迎的。

    我在Ruby教程中看到關於Rspec的一種測試數據庫的方法,在測試完成後使用測試環境Databse和回滾。還模擬了用戶點擊鏈接等操作。 PHPUnit有可能嗎?

回答

0

對於什麼有待測試以及哪些未經過測試,總會有很多討論。一般來說,我認爲你不應該測試應該工作的東西,比如數據庫驅動和連接,這與你的代碼無關。有人認爲你應該可以測試它,但在大多數情況下,這不是一件容易的事情,通常是一件很麻煩的事情。

一般來說控制器動作應該和你寫的任何助手或模塊一起測試。通常使用模擬框架的範例來繞過數據庫。關於這一點的好處是你的測試速度提高了很多。有幾個PHP嘲笑框架,以及我想。

要記住的另一件好事是您也有用戶測試。這不能用你在kohana中寫的測試來模擬。爲此,看看http://seleniumhq.org/

0

把這樣一個漫長的問題分成多個SO問題可能會更好。

  1. 不知道。也許有NetBeans調用phpunit的調用開銷,與將請求傳遞給PHP的apache相比。
  2. 這可能是可能的,或者你可以找到一種方法來設置以下選項:--exclude-group kohana
  3. 不知道對不起。
  4. AFAIK PHPUnit無法進行客戶端交互測試。如何做系統行爲測試可能是一個問題。