2012-01-04 20 views
0

我正在寫一個遊戲。我在測試它時遇到了一些麻煩。如何測試涉及多個步驟以達到測試特定階段的應用程序?

一個簡單的例子涉及到這樣的事情:

  1. 大家加入遊戲
  2. 每個人都按就緒。一旦所有人都準備好了。比賽開始
  3. 瘋狂的事情發生

我沒有任何麻煩測試1和2。但是,我爲了實現測試三,我要叫1和2.然後,隨後根據測試的下一個項目遊戲流程也將涉及測試1,2和3。

這是什麼樣的測試?我知道這不是單元測試。這聽起來有點像集成測試。

什麼是測試這樣的應用程序的正確方法?

PS我在nodejs上寫這個程序。對我來說,一個好的框架可以讓我做這樣的事情? (我目前使用的是nodeunit,它並沒有真正允許我調用以前的測試用例而不會引發錯誤)。

回答

1

第一個單元測試它。單元測試的難點在於告訴你分離責任。你描述一個狀態。使用狀態模式實現。更好的代碼和功能可以或不可以在任何狀態下使用(例如,每個人都已經準備好了......遊戲狀態已經開始),並且完全獨立地進行了測試。所以你最終得到很好的功能塊。

現在......一旦你的'狀態引擎'和狀態被測試,你想連接它們。這是集成測試(假設您未測試整個應用程序)。集成測試的目的是測試子系統的佈線,而不是所有的功能,而不是所有的應用。

+0

好吧,清除,我絕對不想做集成測試,因爲它不測試我想要的。我不是整合子系統 - 我只是不斷地在測試中調用測試用例,以達到測試的正確狀態。 – disappearedng 2012-01-04 07:33:43

+0

因此將集成測試放在一邊。如果使用狀態模式,則不需要在測試中調用測試用例。我認爲你在測試中的呼叫測試走到編碼到一個狀態。我認爲這將變得難以維持。隨着狀態模式,每個狀態都是它自己的類。在你的情況下,你至少有三個狀態:「加入」,「開始」,「發生瘋狂事情」。你可以單元測試「開始」轉換爲「發生了什麼瘋狂事件」,你可以單元測試瘋狂的東西。 – 2012-01-05 07:38:00

相關問題