2015-09-11 46 views
2

当使用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难看,但它仍然看起来像黑客。我错过了什么,或者实际上是方式调用域对象的方法吗?

+0

你能告诉我们,你有那么它确切的代码从编码的角度来看更有意义 – MethodMan

+0

@MethodMan,我在我的问题中包含了方法的确切签名。你需要什么样的其他细节? –

回答

2

您可以在参数之间添加空单元 - 这是一种广泛使用的技术。或者你可以使用SequenceFixture:

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

SequenceFixture非常相似DoFixture并具有几乎相同的功能 - 事实上,这两个之间的唯一区别是命名 约定的方法。而不是使用奇细胞构建 方法名,SequenceFixture需要每一行的 方法名的第一个单元格,而其他所有单元作为参数

相关问题