1
我最近遇到一些單元測試代碼,它導入要測試的函數中的模塊,而不是模塊級別的導入。根據測試導入被測模塊而不是模塊級導入?
然後,谷歌搜索後,我發現Pylons/Pyramid best practices原因,「導入失敗......不應該阻止這些測試運行。」
這應該是標準做法嗎?
我發現它有點醜,另外,他們的類例子看起來像輕微的過度工程。
我最近遇到一些單元測試代碼,它導入要測試的函數中的模塊,而不是模塊級別的導入。根據測試導入被測模塊而不是模塊級導入?
然後,谷歌搜索後,我發現Pylons/Pyramid best practices原因,「導入失敗......不應該阻止這些測試運行。」
這應該是標準做法嗎?
我發現它有點醜,另外,他們的類例子看起來像輕微的過度工程。
如果導入的文件的頂部測試的所有模塊,而不是在單元測試的功能,然後導入錯誤將阻止你的測試中的任何運行。我對此有兩點意見。這取決於你如何運行你的單元測試。
如果您在命令行上或者從Hudson或Jenkins運行測試,那麼您會注意到導入錯誤並立即進行更正。在這種情況下,我不認爲在模塊級別導入所有內容是個問題。這當然更方便,並且需要更少的重複。
如果有導致導入錯誤導致無提示失敗的可能性(例如,如果你的單元測試框架甚至不能告訴你它失敗,除非它可以導入你的測試模塊),那麼導入模塊可能更安全在你的測試功能中。
這基本上是我的哲學。 「鼻子」在這種情況下做得不錯,所以我認爲我會接受你的答案作爲一個很好的一般經驗法則。 – 2011-03-14 11:27:47