Тестовый сценарий Гувнора: создание фактов с аргументами в конструкторе

Я импортировал в свой репозиторий Guvnor файл.jar с моделью Pojo того, что я хочу, чтобы быть фактами. Один из этих классов имеет конструктор с аргументами, и это единственный факт, который я не могу описать в сценарии тестирования в данном разделе. Я получаю исключение InstantiationException, указывающее на класс.

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

У меня вопрос, есть ли какой-то особый способ, которым я должен делать это для факта, который имеет аргументы в своем конструкторе, так как я могу проверить свои правила с любым из других объектов.

Спасибо

1 ответ

Решение

Было бы лучше, если бы ваши факты не имели аргументов конструктора, но вы можете использовать следующий обходной путь:

Создайте правило, которое утверждает ваш Fact с аргументами конструктора, и убедитесь, что оно работает только в тестовых случаях.

when
    MyBreadcrumbThatDefinesTestRuns()
then
    MyFactWithConstructorArgs f = new MyFactWithConstructorArgs("arrgh")
    insert(f)
end

Теперь вам нужно определить факт в вашей модели с именем MyBreadcrumbThatDefinesTestRuns и вставьте его в свою сессию на Given раздел определения теста.

Другие вопросы по тегам