以对象为参数的 FitNesse 测试

Posted

技术标签:

【中文标题】以对象为参数的 FitNesse 测试【英文标题】:FitNesse tests with objects as parameters 【发布时间】:2013-08-06 15:03:50 【问题描述】:

我在为我的应用程序编写 FitNesse 测试时遇到问题。

测试本身非常简单。

我们设置了一笔贷款,它有一些属性(本金、利息、费用)。

还有另一个对象,Rules,其中包含用于偿还贷款的属性。

Loan 类有一个名为 SplitLoan 的方法,该方法接受一个 Rules 对象,并返回需要支付的付款列表。

付款将包含总金额以及本金、利息和费用的各个金额。

如何在 FitNesse 中将其编写为测试?

我什至无法进行调用,因为我不知道如何设置传递给 SplitLoan 函数的规则对象。

【问题讨论】:

【参考方案1】:

我不肯定这在 C# 中有效,但我知道 SLIM 支持将对象引用放入符号中。您可以使用一个夹具来构建规则对象,获取对它的引用,然后将符号传递给另一个需要它作为输入的夹具。

http://fitnesse.org/FitNesse.SuiteAcceptanceTests.SuiteSlimTests.SlimSymbolCanHoldInstanceUsedAsParameter

或者,如果您不想(或不能)获取对象引用并将其存储在符号中,则可以使用一个夹具来构建规则并将它们存储在带有标识符的单例中。然后您可以在以后的夹具中传递该标识符,夹具代码可以从单例中获取规则对象。

【讨论】:

所以,我很困惑。 QA(或用户!)应该如何编写这些测试? 你问了做一个非常技术性的事情,传递一个对象。这比很多用途有点棘手。我对规则对象的外观一无所知,因此很难提出一个夹具。但理想情况下,构建规则的夹具具有人类友好的夹具来定义规则。然后测试作者执行“|$rulesObject=|get rules object|。然后将其传递给您的其他夹具。【参考方案2】:

这样的事情是否符合您的要求?这是 fitSharp 测试。

|name|myrules|with|new|rules|

|with|myrules|
|set|myproperty|123|

|with|new|loan|
|set|principal|1000|
|set|interest|5|

|split loan|<<myrules|
|total|interest|principal|fees|
|100|80|5|15|
|100|78|7|15|

【讨论】:

以上是关于以对象为参数的 FitNesse 测试的主要内容,如果未能解决你的问题,请参考以下文章

working with fitnesse wiki pages

fitnesse - 用例创建编辑管理执行和日志

使用 Fitnesse 测试外部数据

如何在最新的 FitNesse 版本“20140201”中输出测试表中的可点击链接

Cruisecontrol.net exec 中的 Fitnesse:测试失败时不要使构建失败

接口测试目录导航