我有一个python方法,比如
import external_object
from external_lib1 import ExternalClass1
from external_lib2 import Hook
class MyClass(self):
def my_method(self):
ExternalClass.get('arg1') #should be mocked and return a specific value with this arg1
ExternalClass.get('arg2') #should be mocked and return a specific value with this arg2
def get_hook(self):
return Hook() # return a mock object with mocked method on it
def my_method(self):
object_1 = external_object.instance_type_1('args') # those are two different object instanciate from the same lib.
object_2 = external_object.instance_type_2('args')
object_1.method_1('arg') # should return what I want when object_1 mocked
object_2.method_2 ('arg') # should return what I want when object_2 mocked
在我的测试中,我想知道我在评论中写了什么
我本可以做到的,但每次都变得一团糟。
我曾经为一些东西调用flexmock(例如ExternalClass.get('arg1')将使用flexmock(ExternalClass).should_return('arg').with_args('arg') # etc...
进行模拟),但是我厌倦了使用不同的测试库进行模拟
我只想使用mock库,但我很难找到一种一致的方法
我喜欢使用python的unittest库。具体来说,
unittest.mock
是一个很好的库,可以自定义单元测试函数中的side effects和return value它们可以如下使用:
将
TestSome()
类文件放在your-codebase-path/tests
这样的位置并运行:我希望它有用
相关问题 更多 >
编程相关推荐