我有以下python文件board.py:
def __init__(self, language):
self.foo = Foo(language)
self.words = Aux(self.foo)
我正在创建这个test_file:
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.board = Board('pt')
def test_total_time(self):
self.board.total_time(True)
#some assert
但是我遇到了FileNotFoundError,因为Aux .___ init ____()调用了self.foo.method()来打开文件并从中读取文件。 有没有办法模拟self.foo.method()或类Aux?
答案 0 :(得分:0)
您将要修补模块。如果给我测试文件的名称和要测试的类。我可以帮你解决这个问题。
在测试文件中:
import unittest
def BoardTestCase(unittest.TestCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.aux_mock = unittest.mock.patch('file_undertest.Aux')
cls.board = Board('pt')
def test_total_time(self):
self.board.total_time(True)
#some assert
我建议使用pytest代替标准库unittest。测试将被编写为函数,这意味着您仅在需要时才可以重用Board类。您可以设置更强大的固定装置(板级测试用例),并且如果花15分钟将头部包裹起来,mocker扩展将更加直观。