1 回答

TA貢獻1963條經驗 獲得超6個贊
一個常見的問題是模擬函數的使用過于復雜。您幾乎可以像對待另一個類方法一樣對待它們。在您的情況下,abstractmethod裝飾器可能會造成混亂。
這接近您可能需要的東西。
class MockSharedFunctions(SharedFunctions):
def one_important_universal_function(**args):
return 0
class TestSharedFunctions(unittest.TestCase):
def test_first_function(self):
mock = MockSharedFunctions()
mock_output = firstfunction(**args)
mock_stuff = mock.stuff
self.assertTrue(True)
self.assetEqual(mock_output, expected)
self.assetEqual(mock_stuff, expected)
def test_second_function(self):
mock = MockSharedFunctions()
mock.stuff = some_value
mock_output = second_function(**args)
self.assetEqual(mock_output, expected)
self.assertTrue(True)
if __name__ == "__main__":
unittest.main()
在這里,MockSharedFunctions您已經在繼承SharedFunctions. 作為one_important_universal_function一個抽象方法,它需要被定義。
添加回答
舉報