2014-06-27 71 views
3

說,我有類似如下的Python代碼:如何對這個lambda代碼進行單元測試?

try: 
    from fabulous.color import fg256 
    format_info = lambda x: fg256(63, unicode(x, 'utf-8')).as_utf8 
except ImportError: 
    format_info = lambda x: '\033[1;30m' + x + '\033[0m' 

我怎麼能單元測試呢?

是否值得測試?

需要模擬導入語句,以便切除兩個分支。這是相當微不足道的 - 例如,模擬fg256有副作用raise ImportError

匹配返回的字符串有正確的控制字符是好的,但感覺脆弱。

+1

爲什麼要測試呢?在第一種情況下,似乎應該已經由包裝作者*執行了測試*,後一種情況......其正確性可以在兩行中正式證明。 – Bakuriu

+0

@Bakuriu:嗯,我是包裝作家,所以我應該測試這個......它*可能*確實不能保證測試,這將是一個很好的答案。爲清晰起見編輯的問題 – Sardathrion

回答

0

究竟是什麼,你想測試?你在這裏似乎有兩個不相關的案例。

  • 進口失敗
  • 拉姆達返回正確的信息

這不是真的是你的責任,檢查不使用你的代碼失敗;但是如果你想要測試這個(也許是因爲這是有人在一個流行論壇上發佈的代碼),我會把它分成兩個不同的測試。

我們不知道你的lambda應該返回什麼,但看起來它應該返回一個類似於你在except分支中指定的字符串?

相關問題