小编Bob*_*ski的帖子

隔离依赖于初始化程序的测试的好方法

我真的试图开始隔离我的单元测试,这样我就可以确定错误发生的位置,而不是在出现问题时让整个屏幕变为红色.除了初始化程序中的某些内容失败之外,它一直在所有实例中工作.

看看这些测试:

@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')
Run Code Online (Sandbox Code Playgroud)

我正在嘲笑依赖方法,以便我正在测试的东西是完全孤立的.您注意到的是,需要为每个测试实例化该类.如果在初始化程序中引入了错误,则每个测试都会失败.

这是调用类初始化程序的违规构造函数:

SomeFiles(*args)
Run Code Online (Sandbox Code Playgroud)

有没有办法隔离或模拟初始化器或对象构造函数?

python testing unit-testing mocking

5
推荐指数
1
解决办法
182
查看次数

标签 统计

mocking ×1

python ×1

testing ×1

unit-testing ×1