使用DoFixture
时,我可以将域对象设置为 System Under Test ,这允许我调用该对象上的方法而不是fixture本身。
不幸的是,如果这样的方法需要多个参数,我必须用空单元格分隔这些参数,因为否则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 :(得分:2)
您可以在参数之间添加空单元格 - 这是一种广泛使用的技术。或者您可以使用SequenceFixture:
http://fitnesse.org/FitNesse.UserGuide.FixtureGallery.FitLibraryFixtures.SequenceFixture
SequenceFixture与DoFixture非常相似,几乎相同 功能 - 事实上,这两者之间的唯一区别是命名 方法公约。而不是使用奇数单元格来构造 方法名称,SequenceFixture将每行中的第一个单元格作为 方法名称,所有其他单元格作为参数