Вызов методов в тестируемой системе

При использовании DoFixture я могу установить объект домена как Тестируемая система, что позволяет мне вызывать методы для этого объекта вместо самого прибора.

К сожалению, если такой метод требует более одного параметра, я должен разделить эти параметры пустыми ячейками, потому что в противном случае Fitnesse/fitSharp использует нечетные/четные ячейки для создания имени метода. Я вижу, как это делает мои тесты более похожими на простой английский язык, но на самом деле нецелесообразно начинать переименовывать методы объекта предметной области только для того, чтобы удовлетворить требования среды тестирования.

Например, я хочу вызвать метод Entry AddEntry(string name, string description) и сохранить результат как символ e1. Если я попробую следующую таблицу:

|name|e1|add entry|sample name|sample description|

он попытается найти метод с именем AddEntrySampleDescription и передать ему единственный параметр "sample name".

я могу сделать

|name|e1|add|sample name|entry|sample description|

но это просто не выглядит правильно.

Итак, что я в итоге сделал (обратите внимание на лишнюю пустую ячейку между параметрами)

|name|e1|add entry|sample name||sample description|

который делает то, что я хочу, и не такой уродливый, как вариант № 2, но все же кажется хаком. Я что-то упустил или это действительно способ вызывать методы для объектов предметной области?


person Michael Domashchenko    schedule 11.09.2015    source источник
comment
можете ли вы показать нам точный код, который у вас есть, чтобы он имел больше смысла с точки зрения кодирования   -  person MethodMan    schedule 12.09.2015
comment
@MethodMan, я указал точную подпись метода в своем вопросе. Какие еще детали вам нужны?   -  person Michael Domashchenko    schedule 12.09.2015


Ответы (1)


Вы можете добавить пустую ячейку между параметрами — это широко используемый прием. Или вы можете использовать SequenceFixture:

http://fitnesse.org/FitNesse.UserGuide.FixtureGallery.FitLibraryFixtures.SequenceFixture

SequenceFixture очень похож на DoFixture и имеет почти те же функции — фактически единственная разница между ними заключается в соглашении об именах методов. Вместо использования нечетных ячеек для построения имени метода SequenceFixture принимает первую ячейку в каждой строке в качестве имени метода, а все остальные ячейки — в качестве аргументов.

person Mike Stockdale    schedule 12.09.2015