想象一下,我們有一個包含不同類型服務器的遊戲來代表不同的國家。現在,讓我們說遊戲只允許用戶「與朋友」只與其帳戶所在服務器相同的其他玩家。作爲一名開發人員,我負責編寫一個測試用例,僅用於查看用戶是否可以互相「夥伴」互動。然而,這裏是我的困境所在,因爲我只需測試用戶是否可以「夥伴」別人,是否還必須測試用戶是否不能在同一個測試用例中添加來自其他服務器的用戶,或者應該寫在另一個測試用例中,與我正在寫的當前測試用例完全分開嗎?單元測試應該包含與您正在測試的內容相反的內容嗎?
1
A
回答
1
是的,你應該。
您所描述的第一次測試,在那裏你只是測試,如果他們能有一哥們,被稱爲Happy Path testing。你正在測試它的工作原理,沒有例外或錯誤或奇怪的用例。
快樂路徑測試是一個良好的開端。其他一切都是真正樂趣開始的地方。
在你的情況,腦海中出現的東西...
- ,如果他們有一個無效的哥們哥們什麼?
- 如果他們與已經是他們的朋友的人夥伴呢?
- 如果他們與不是用戶的東西夥伴怎麼辦?
如何將這些應組織是口味的問題。理想情況下,他們都是單獨的測試。這使得每個測試的目的都是通過測試名稱清晰的,並且避免了測試之間的交互和依賴關係。這裏有一個沒有特定語言的草圖。
describe add_buddy {
test happy_path {
assert user.add_buddy(valid_buddy);
assert user.buddies.contains(valid_buddy);
}
test buddy_on_another_server {
buddies = user.buddies;
assert !buddies.contains(invalid_buddy);
assertThrows {
user.add_buddy(invalid_buddy);
} InvalidBuddy;
assert buddies == user.buddies, "buddy list unchanged";
}
test buddy_with_non_user {
buddies = user.buddies;
assertThrows {
user.add_buddy(non_user);
} ArgumentError;
assert buddies == user.buddies, "buddy list unchanged";
}
test buddy_an_existing_buddy {
assert user.add_buddy(valid_buddy);
# Should this return true? False? An exception?
# You have to decide. I decided false.
assert !user.add_buddy(valid_buddy);
# The buddy is only on the list once.
assert user.buddies.numContains(valid_buddy) == 1;
}
}
之類的東西user
和valid_buddy
可以在setup
程序來創建,或者更好的他們可以通過固定裝置發生器如Factory_Girl。
相關問題
- 1. 單元測試應該涵蓋什麼,不應該包含哪些內容?
- 2. 測試內容與功能
- 3. 用於測試文件夾內容的Python單元測試
- 4. MS測試單元測試引發的事件內容
- 5. Rails測試單元 - 內容助手
- 6. 單元測試電子郵件內容
- 7. 反向引用的測試內容?
- 8. loadHTML($ str)的測試內容
- 9. 測試NullReferenceException(不測試任何內容)
- 10. Android內容提供商測試的真正內容提供商
- 11. 測試與酶反應容器
- 12. RSpec should_receive宏,其中包含需要測試的內容的ID
- 13. 測試網頁內容
- 14. 硒遞歸內容測試?
- 15. Specs2:如何測試「abc」是否包含「aabb」的所有內容
- 16. 如何在casper測試文件中包含文件內容?
- 17. webpack需要非js的內容在單元測試
- 18. 在Django中進行內容類型模型的單元測試
- 19. javascript在黃瓜中的測試內容
- 20. 單元測試應該知道NHibernate嗎?
- 21. 酶/反應單元測試
- 22. 斷言與單元測試不兼容?
- 23. 容器內測試與模擬對象進行集成測試
- 24. 單元測試與早該
- 25. 單元測試應該覆蓋壓力測試嗎?
- 26. 我應該如何讓webrat測試一個textarea的內容
- 27. CoreDispatcher與反應擴展單元測試
- 28. 如何在單元測試中添加內容在數組
- 29. 測試預先提交的內容中的內容
- 30. perl測試內容,看看是否包含HTML
謝謝你這麼多,這確實清除了很多我的問題,現在我什麼我應該做的^ _ ^少不確定性。 – Belphegor