我與同事發生了「哲學」分歧,我想聽到社區對雙方的想法(或更好的第三種選擇)。測試策略:斷言響應的「特徵」或斷言全響應?
基本上我們有一個返回好友列表的JSON API。結果看起來像這樣:
[{"name":"Bob", "uid":12345, "level":4}, {"name":"George", "uid":23456, "level":6}]
有一個正常的「共同的朋友」要求的地方,影響響應。
的分歧基本上結束了,這是更好,
測試,關於響應的 「特徵」 斷言:
def test_results_are_sorted_by_name(): .. <setup 2 friends> .. response = controller.getFriendsList() assertLessThan(response[0].name, response[1].name) def test_blocked_users_are_not_returned(): .. <setup some friends and block one, storing the id in blocked_uid> .. response = controller.getFriendsList() for friend in response: assertNotEqual(friend.uid, blocked_uid)
測試其上的文字響應斷言
def test_results_are_sorted_by_name(): .. <setup 2 friends> .. response = controller.getFriendsList() expectedResponse = {...} assertEqual(response, expectedResponse) def test_blocked_users_are_not_returned(): .. <setup some friends and block one, storing the id in blocked_uid> .. response = controller.getFriendsList() expectedResponse = {...} assertEqual(response, expectedResponse)
哪個更好,爲什麼?
是否有其他選擇比兩者都好?
不幸的是「哪個更好」會導致此問題陷入「不要問」的問題類別:http://stackoverflow.com/faq#dontask – Kev