Fitsharp, как дать символы в качестве аргумента?

Я использую FitNesse с FitSharp (.Net) и пытаюсь настроить набор тестов:

  1. Генерация случайного порта
  2. Настройка пути выполнения
  3. Запустите процесс на порту, в пути и получите его pid

Мой код C# выглядит так:

public int RandomPort() {...}
public int SetupWebsite() {...}
public int StartWebsite(string path, int port) {...}

Моя фитнес выглядит так:

!|Setup|
|RandomPort?|
|>>port|

!|Setup|
|SetupWebsite?|
|>>path|

!|Setup|
|StartWebsite?|<<path|<<port|
|>>pid|

Ошибка: fitSharp.Machine.Exception.MemberMissingException: Member 'startwebsite' with 0 parameter(s) not found for type 'Web.Api.Tests.Setup'.

Я пробовал много вещей, но это никогда не работает, проблема не в том, что я делаю что-то не так (что очевидно), но я не могу найти, как это сделать правильно...

Мне действительно тяжело с Fitnesse... Я не могу найти нигде и актуального учебника, ни каких-либо ресурсов, которые бы помогли мне создать хороший SuiteTest... Чтобы добавить больше контекста в мой вопрос, я хочу чтобы запустить IISExpress (мою программу установки) в проекте Web.Api 2, а затем сделать несколько вызовов Json/Rest, мой Teardown должен просто завершить процесс IISExpress и очистить папку временного веб-сайта.

Спасибо за помощь!

2 ответа

Решение

Оператор сохранения символа (>>) и оператор возврата символа (<<) можно использовать для сбора значения в одном месте в тесте истории, а затем использовать его в других местах. Оператор сохранения символа может использоваться в любой ячейке ожидаемого значения. Вместо того, чтобы сравнивать фактическое значение с ожидаемым, фактическое значение сохраняется с именем символа.

Вы можете использовать check ключевое слово:

!|setup|
|check|randomport|>>port|
|check|setupwebsite|>>path|
|check|startwebsite|<<path||<<port|>>pid|

См. http://fitsharp.github.io/Fit/SymbolValues.html

Вы также можете использовать name ключевое слово. name Ключевое слово назначает объект имени символа, который может быть использован для получения объекта позже.

!|setup|
|name|port|randomport|
|name|path|setupwebsite|
|name|pid|startwebsite|<<path||<<port|

См. http://fitsharp.github.io/Fit/NameKeyword.html

Обратите внимание, что при вызове метода имя метода создается путем объединения каждой другой ячейки. Другие чередующиеся ячейки являются входными значениями.

Благодаря Майку, это почти сделано. Я не понимаю почему, но я должен изменить метод StartWebsiteбыть чем-то вроде StartWebsiteOnPortAndPathтак что я могу разделить звонок... странно.

Мой конечный результат:

!|setup|
|check|random port|>>port|
|check|setup website|>>path|
|check|start website on port|<<port|and path|<<path|>>pid|
Другие вопросы по тегам