Я хочу написать (предпочтительно с использованием pytest) модульный тест, чтобы определить, успешно ли следующая функция очищает терминал на нескольких платформах с помощью os_name («nt» или чего-то еще, например, «posix»):
def clear_terminal(os_name):
code = os.system('cls' if os_name == 'nt' else 'clear')
print() # add padding at top of cleared screen
Это сложно, потому что в настоящее время у меня есть доступ только к платформе на основе UNIX, и я не могу придумать простой способ проверить, будет ли присвоение os_name в качестве 'nt' работать на машине с Windows.
Пока у меня есть следующий тест (где os_name - это прибор Pytest, который может быть одним из «nt» или «posix»):
def test_clear_terminal(os_name):
with unittest.mock.patch(target='os.system') as os_system:
clear_terminal()
assert os_system.called_once_with(os_name)
Проблема, с которой я столкнулся, заключается в том, что это действительно простоисправление кода, который я тестирую, так что это в принципе бесполезно! Каким будет строгий подход к тестированию этого кода? Вам нужно будет просто запустить тест на нескольких разных платформах или есть другой способ?