Fitsharp, как дать символы в качестве аргумента?
Я использую FitNesse с FitSharp (.Net) и пытаюсь настроить набор тестов:
- Генерация случайного порта
- Настройка пути выполнения
- Запустите процесс на порту, в пути и получите его 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|