所以我刚开始使用模拟库来执行一些单元测试。但碰到了一个对我来说当然神秘的问题。
当我调用下面的代码时,stream.open()总是求值为True,因为它似乎返回Mock对象而不是False值。
测试代码
@patch('module.lib.stream')
def test_error_raised(self, mock_stream):
mock_stream.open.return_value = False
self.assertRaises(IOError, get_query, 618)
叫做函数
def get_query(id):
id = str(id)
fpath = os.path.join(
path, '{0}.pdf'.format(id))
stream = stream()
if not stream.open(fpath):
raise IOError("No file found")
list = map(foo, stream.GetData())
first_entry = list[0]
target_entries = list[1:]
return first_entry, target_entries
有没有办法正确模拟这个功能?
答案 0 :(得分:1)
从你的功能来看,private void add2ActionPerformed(java.awt.event.ActionEvent evt) {
lTree2.setText(tf2.getText());
}
似乎是一个类。
由于您创建了该类的实例,然后在该实例上调用stream
方法,因此您需要在测试函数中执行open
。