MXUnit отказано в разрешении
Я наконец смог заставить mxunit и mocking работать над моей локальной установкой Windows, но после того, как администратор sys установил ее на нашем сервере Linux, я получаю следующую ошибку только при ее использовании. Он отлично работает для другого приложения, которое не требует насмешек.
Оскорбительный код:
mockLogger = getMockBox().createMock('coldbox.system.logging.Logger');
mockLogger.$("info").$("debug").$("warn").$("error");
model.$property(propertyName="logger", mock=mockLogger);
Ошибка:
/shared/coldbox/system/testing/stubs/9DA00BFE-CBB2-164D-DAB9269585B3E317.cfm (Permission denied)
Есть ли что-то, что я должен установить в моем test/Application.cfc?
1 ответ
Ошибка в том, что MXUnit / Mockbox пытается создать указанный файл, но CF не имеет разрешения на запись в это место.
Обычное исправление для этого - обновить разрешения для этого каталога заглушек, чтобы CF мог записывать и получать доступ к файлам там. (Используйте chown/ chmod или попросите администратора сделать это.)
Другой вариант - использовать другое местоположение, на которое CF имеет разрешение. Вы можете установить это, передав generationPath
аргумент MockBox при инициализации, либо...
new coldbox.system.testing.MockBox( generationPath="path" )
... если вы инициализируете его самостоятельно или из модульного теста...
getMockBox().init( generationPath="path" )
Указанный путь должен быть относительным - то есть что-то, что может использовать cfinclude, так что, возможно, стоит настроить отображение.