3

使用时,DoFixture我可以将域对象设置为System Under Test,这允许我调用该对象而不是夹具本身的方法。

不幸的是,如果这样的方法需要多个参数,我必须将这些参数与空单元格分开,否则 Fitnesse/fitSharp 使用奇数/偶数单元格来构建方法名称。我可以看到这如何使我的测试更类似于简单的英语,但是仅仅为了满足测试框架的要求而开始重命名域对象方法并不可行。

例如,假设我想调用方法Entry AddEntry(string name, string description)并将结果存储为 symbol 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那样丑陋,但它仍然看起来像一个黑客。我错过了什么,或者这实际上是在域对象上调用方法的方式吗?

4

1 回答 1

3

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

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

SequenceFixture 与 DoFixture 非常相似,并且具有几乎相同的功能——事实上,两者之间的唯一区别是方法的命名约定。SequenceFixture 不使用奇数单元格来构造方法名称,而是将每行中的第一个单元格作为方法名称,并将所有其他单元格作为参数

于 2015-09-12T18:52:48.300 回答