0

У меня есть интеграционный тест, который проверяет на WebFlow всякий раз, когда он reachs определенную точку в коде контроллера испытывается я вижу ошибку, аналогичную:Grails Groovy Синтаксис Сахар не добавляется в тестах интеграции WebFlow на вводе команды линии

org.springframework.webflow.execution.ActionExecutionException: Exception thrown executing org.code[email protected]ac0e86f in state 'blahQuestions' of flow 'blahBlah' -- action execution attributes were 'map[[empty]]' 
    at grails.test.WebFlowTestCase.signalEvent(WebFlowTestCase.groovy:142) 
    at com.blah1.blah2.blah3.blah4.BlahFlowIntegrationTests.testblahQuestions(BlahFlowIntegrationTests.groovy:91) 
Caused by: groovy.lang.MissingPropertyException: No such property: blahMessage for class: org.springframework.webflow.core.collection.LocalAttributeMap 
    at com.blah1.blah2.blah3.blah4.BlahController$_closure2_closure15_closure22.doCall(BlahController.groovy:178) 

бросает оскорбительная деталь: flow.blahMessage = '', где flow.put('blahMessage', '') работает без ошибок. Это происходит только тогда, когда я запускаю тесты из командной строки: grails test-app integration:, тест от eclipse RightClick on test -> Run As -> Grails Command (test-app) работает нормально.

Grails 2.2.3

Почему это происходит и как я могу это исправить?

Update:

При запуске теста с помощью командной строки сам по себе тест будет проходить, но если я бегу все интеграционные тесты он терпит неудачу.

+0

Вы писали: «Извините BalRog, опечатка была моей плохой в вопросе, в фактическом коде, который они соответствуют, мне нужно изменить его на политику, я должен был бы дважды проверить все орфографию». На самом деле я тоже ошибся. Я намеревался опубликовать свой «ответ» в качестве комментария. Я взял его сейчас. – BalRog

+0

Вы также писали: «Я подозреваю, что это рассматривается как класс фиксированной собственности. Я просто не знаю, почему, поскольку он отлично работает в фактическом коде». Похоже, что «LocalAttributeMap» не позволит вам добавлять новые атрибуты (карта ключи) после инициализации набора атрибутов. Возможно ли, что вы создали экземпляр «LocalAttributeMap» в одном контексте, но не в другом? – BalRog

+0

Что касается двух разных способов установки значения, одна строка является единственной разницей, когда я запускаю тесты, нет другого изменения кода между тестовыми запусками. Я использую 'setCurrentState ('blahQuestions')' вместо начала потока с самого начала. Однако код одной строки меняет исправления, поэтому я не думаю, что это связано. –

ответ

0

Похоже, что это было пробное загрязнение, о чем свидетельствует мое редактирование «Когда я запускаю тест через командную строку сам по себе, тест пройдет, но если я запустил все тесты интеграции, это не сработает». Вызывает другие интеграционные тесты, в которых используются @TestFor и @Mock, которые вы должны использовать только в модульных тестах.

Я понял это, следуя Теда Naleid в article «Закрепление Grails Тесты, которые проходят в изоляции, но терпеть неудачу при запуске в качестве Сюита» который именно то, что происходило у меня. В статье представлен класс groovy, который вы можете использовать, чтобы найти самую маленькую комбинацию тестов, где ваш тест все равно будет терпеть неудачу.

Смежные вопросы