【发布时间】:2013-10-18 18:10:45
【问题描述】:
我真的试图开始隔离我的单元测试,这样我就可以查明发生错误的位置,而不是在出现问题时让我的整个屏幕因故障而变红。它在所有情况下都有效,除非初始化程序中的某些内容失败。
查看这些测试:
@setup_directory(test_path)
def test_filename(self):
flexmock(lib.utility.time).should_receive('timestamp_with_random').and_return(1234)
f = SomeFiles(self.test_path)
assert f.path == os.path.join(self.test_path, '1234.db')
@setup_directory(test_path)
def test_filename_with_suffix(self):
flexmock(lib.utility.time).should_receive('timestamp_with_random').and_return(1234)
f = SomeFiles(self.test_path, suffix='.txt')
assert f.path == os.path.join(self.test_path, '1234.txt')
我正在模拟依赖方法,以便我正在测试的东西是完全隔离的。您注意到的是,每个测试都需要实例化该类。 如果在初始化程序中引入错误,则每个测试都会失败。
这是调用类的初始化器的有问题的构造函数:
SomeFiles(*args)
有没有办法隔离或模拟初始化程序或对象构造函数?
【问题讨论】:
标签: python unit-testing testing mocking