msv*_*kon 10 python testing unit-testing nosetests
我正在尝试为项目设置一些自动单元测试.我有一些功能,作为副作用偶尔会调用另一个功能.我想写一个单元测试,测试第二个函数被调用,但我很难过.下面是伪代码示例:
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")
Run Code Online (Sandbox Code Playgroud)
我该如何测试b()-gets调用?
ale*_*cxe 11
您可以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()
Run Code Online (Sandbox Code Playgroud)
另见:
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
15946 次 |
| 最近记录: |