Python-如何为单元测试导入模块?
我在模块(mod1)中有一些函数。我想对它们运行一些单元测试(特别是鼻子测试)。我所看到的关于使用unittest/NoTests的大多数介绍似乎只是从mod1 import func1中导入代码以使用Python-如何为单元测试导入模块?,python,unit-testing,import,nose,Python,Unit Testing,Import,Nose,我在模块(mod1)中有一些函数。我想对它们运行一些单元测试(特别是鼻子测试)。我所看到的关于使用unittest/NoTests的大多数介绍似乎只是从mod1 import func1中导入代码以使用进行测试。然而,从我收集的信息来看,我希望避免从mod1导入的模块(mod2)中导入任何代码,因此您只能直接在mod1中测试代码。相反,我应该模拟mod1导入的mod2函数。我是不是太傻了,从mod1导入func1不会从mod2导入代码?或者是否有其他方法导入func1,这样它就不会从mod2导入
进行测试。然而,从我收集的信息来看,我希望避免从mod1导入的模块(mod2)中导入任何代码,因此您只能直接在mod1中测试代码。相反,我应该模拟mod1导入的mod2函数。我是不是太傻了,从mod1导入func1
不会从mod2导入代码?或者是否有其他方法导入func1,这样它就不会从mod2导入任何代码?多谢各位 这是您的设计决策,m1与m2交互,因此您可以选择
1) Test mod1 with mod2
2) Mock functions in mo2d
但是,有一些方法可以避免直接导入。请查看此代码
https://github.com/django/django/blob/master/django/db/models/loading.py
https://github.com/tangentlabs/django-oscar/blob/master/oscar/core/loading.py
希望这能帮助您稍微分离模块(如果确实需要的话)那么“Mock functions in mod2”是否意味着我只导入mod1,然后导入mod2,然后我只模拟mod2导入的每个函数,这样就不会实际使用它们?是否有某种方法可以确保它们中的每一个都被模拟过,并且不会使用任何真正的函数?当运行您的测试框架时,必须有一种类似于untest2中的“setubStubs”的方法。这里是放置此代码的正确位置。这个东西可能有用