1
我最近遇到一些单元测试代码,它导入要测试的函数中的模块,而不是模块级别的导入。根据测试导入被测模块而不是模块级导入?
然后,谷歌搜索后,我发现Pylons/Pyramid best practices原因,“导入失败......不应该阻止这些测试运行。”
这应该是标准做法吗?
我发现它有点丑,另外,他们的类例子看起来像轻微的过度工程。
我最近遇到一些单元测试代码,它导入要测试的函数中的模块,而不是模块级别的导入。根据测试导入被测模块而不是模块级导入?
然后,谷歌搜索后,我发现Pylons/Pyramid best practices原因,“导入失败......不应该阻止这些测试运行。”
这应该是标准做法吗?
我发现它有点丑,另外,他们的类例子看起来像轻微的过度工程。
如果导入的文件的顶部测试的所有模块,而不是在单元测试的功能,然后导入错误将阻止你的测试中的任何运行。我对此有两点意见。这取决于你如何运行你的单元测试。
如果您在命令行上或者从Hudson或Jenkins运行测试,那么您会注意到导入错误并立即进行更正。在这种情况下,我不认为在模块级别导入所有内容是个问题。这当然更方便,并且需要更少的重复。
如果有导致导入错误导致无提示失败的可能性(例如,如果你的单元测试框架甚至不能告诉你它失败,除非它可以导入你的测试模块),那么导入模块可能更安全在你的测试功能中。
这基本上是我的哲学。 “鼻子”在这种情况下做得不错,所以我认为我会接受你的答案作为一个很好的一般经验法则。 – 2011-03-14 11:27:47