Код: Выделить всё
class A:
__lock = None
def __init__(self, lock):
self.__lock = lock
def method_1(self):
self.__lock.acquire()
self.__atomic_method_1()
self.__lock.release()
def __atomic_method_1(self):
pass
Мне нужно написать модульный тест, который проверяет последовательность вызова методов класса a , когда он вызывается метод_1 () .
Проверка должна проверить, что method_1 () < /code> вызовы: < /p>
- Как первый метод: self .__ lock.acquire ()
- После этого он называет себя .__ atomic_method_1 ()
- Последний метод называется Self .__ Lock.release ( )
в моем случае, однако я должен проверить вызывающую последовательность методов класса и это различие не позволяет использовать решение, предоставленное ссылкой. Разработайте модульный тест, относящийся к ссылке, и таким образом я подготовил трассировку тестового файла, который я могу показать ниже: < /p>
Код: Выделить всё
import unittest
from unittest import mock
from class_a import A
import threading
class TestCallOrder(unittest.TestCase):
def test_call_order(self):
# create an instance of the SUT (note the parameter threading.Lock())
sut = A(threading.Lock())
# prepare the MOCK object
source_mock = ...
with patch(...)
# prepare the expected values
expected = [...]
# run the code-under-test (method_1()).
sut.method_1()
# Check the order calling
self.assertEqual(expected, source_mock.mock_calls)
if __name__ == '__main__':
unittest.main()
спасибо
Подробнее здесь: https://stackoverflow.com/questions/744 ... ed-context