我正在尝试为项目设置一些自动单元测试。我有一些函数,作为副作用,有时会调用另一个函数。我想编写一个单元测试来测试第二个函数是否被调用,但是我很困惑。下面是伪代码示例:
def a(self):
data = self.get()
if len(data) > 3500:
self.b()
# Bunch of other magic, which is easy to test.
def b(self):
serial.write("\x00\x01\x02")
如何测试b()
-gets调用?
您可以b
使用模拟模块模拟该函数,并检查其是否被调用。这是一个例子:
import unittest
from mock import patch
def a(n):
if n > 10:
b()
def b():
print "test"
class MyTestCase(unittest.TestCase):
@patch('__main__.b')
def test_b_called(self, mock):
a(11)
self.assertTrue(mock.called)
@patch('__main__.b')
def test_b_not_called(self, mock):
a(10)
self.assertFalse(mock.called)
if __name__ == "__main__":
unittest.main()
另请参阅:
希望能有所帮助。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句