에서 열린 파일 및 모든 예제 내가모의 나는 열린 모의 파일을 시도하고 파이썬
@patch('open', create=True)
할 필요가 있음을 보여하지만
Need a valid target to patch. You supplied: 'open'
가 계속
open
의 전체 점선 경로이지만 그게 무엇인지 전혀 알지 못합니다. 사실, 그게 문제인지 나는 확신하지 못합니다.
에서 열린 파일 및 모든 예제 내가모의 나는 열린 모의 파일을 시도하고 파이썬
@patch('open', create=True)
할 필요가 있음을 보여하지만
Need a valid target to patch. You supplied: 'open'
가 계속
open
의 전체 점선 경로이지만 그게 무엇인지 전혀 알지 못합니다. 사실, 그게 문제인지 나는 확신하지 못합니다.
모듈 이름을 포함해야합니다. 스크립트에서 테스트하는 경우, 모듈의 이름은 __main__
입니다 :
@patch('__main__.open')
그렇지 않으면 테스트중인 코드가 들어있는 모듈의 이름 사용 : 그래서
@patch('module_under_test.open')
을 코드하는 그 open()
내장을 사용하면 대신 패치 된 전역을 찾습니다.
참고 mock
모듈은 파일 데이터와 적절한 open()
전화를 구축 할거야 mock_open()
utility와 함께 제공 :
@patch('__main__.open', mock_open(read_data='foo\nbar\nbaz\n'))
파이썬 3에서는 사용해야에서
@mock.patch("builtins.open", create=True)
(1) 게시 한 내용에 따라 경로가 무엇인지 또는 문제인지 여부를 알 수 없습니다. [mcve]를 줘. 2.이 작업을 위해 특별히 ['mock_open'] (https://docs.python.org/3/library/unittest.mock.html#mock-open)이 있습니까? – jonrsharpe