Fitsharp,如何将符号作为参数?

Fitsharp, how to give symbols as argument?

我正在将 FitNesse 与 FitSharp (.Net) 结合使用,并且正在尝试设置测试套件:

  1. 随机生成一个端口
  2. 设置执行路径
  3. 端口上启动进程,在路径中,并检索它的pid

我的 C# 代码如下所示:

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

我的 Fitnesse 是这样的:

!|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...添加更多上下文我的问题是,我想在 Web.Api 2 项目上启动 IISExpress(我的设置),然后对其进行一些 Json/Rest 调用,我的 Teardown 应该简单地终止 IISExpress 进程,并清除临时网站文件夹。

感谢帮助!

符号保存操作符(>>)和符号调用操作符(<<)可用于在故事测试中收集一个地方的值,然后在其他地方使用它。符号保存运算符可用于任何预期值单元格。不是将实际值与预期值进行比较,而是将实际值与符号名称一起保存。

您可以使用 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|