1
os.path.exists가 파일/폴더가 존재하지 않는다고보고 할 때 스크립트가 올바르게 작동하는지 확인할 수 있도록 os.path.exists 메서드의 행동을 모의하고 싶습니다. .BDD 단계 파일에서 모의하는 방법
@when("Service starts with input file that does not exist")
def step_impl(context):
"""
:type context: behave.runner.Context
"""
json_file_path = "fake_file_path"
mock_os_path = mock.Mock()
mock_os_path.exists.return_value = False
context.returncode = dicom_send_service.launch(json_file_path)
mock_os_path.exists.assert_called_once_with(json_file_abspath)
내 모의 문장을 내 스크립트에 삽입하려면 어떻게해야합니까? 나는 방법 파이썬 반환 실행할 때, 그러나
@mock.patch("mymodule.os.path")
@when("Service starts with input file that does not exist")
def step_impl(context, mock_os_path):
를 사용하려고 :
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/behave/model.py", line 1456, in run
match.run(runner.context)
File "/usr/local/lib/python2.7/dist-packages/behave/model.py", line 1903, in run
self.func(context, *args, **kwargs)
TypeError: step_impl() takes exactly 2 arguments (1 given)
을 당신이 step_impl 방법이 선언에 따라 2 개 인자를 기대 볼 수 있듯이, 그러나 BDD는 그것을 호출 1 (컨텍스트 값) 및 mock 주석은 선택되지 않았습니다. 여기
는 내가 테스트입니다 코드 : 이with mock.patch('name of thing to mock') as name_of_mock:
그래서 내 위의 예는 될 것이다 :
import os
def validate(json_file_path):
"""Method which validates the JSON file, an error message is returned if the file fails verification.
json_file_path -- the path to the file with the message configuration details"""
if not os.path.exists(json_file_path):
return "Could not find file at path {0}".format(json_file_path)
...
return ""
def launch(json_file_path):
error_message = valid(json_file_path)
if error_message:
print(error_message)
return 1