在过去一个月左右的时间里,我才刚刚开始使用 fitnesse。
我有大约 50-60 个不同的输入可以产生结果。到目前为止,我一直无法找到任何我可以捕获并搁置的中间结果。
以折扣计算为例,需要通过三页或四页向导捕获许多值。这些将用于计算折扣。但是,有一项服务可以获取所有输入并计算折扣。 还需要说明折扣计算的组成部分。
举个具体的例子,假设用户可以在 UI 中选择 A、B、C 中的任何一个或所有选项,并且每个选项都有特定的关联值,用户在向导中输入这些值,这些值会进入计算的折扣。并非所有选项都与所有属性相关联。我的健身 table 需要看起来像:
Property A Property B Property C Expected value
Option A 5 6 n/a 5
Option B n/a n/a 10 2
Option C 10 n/a 10 3
(n/a 表示该属性不适用于该选项)
这里的问题是我有一个单一的服务要调用,它不能改变,它会选择整套选项和属性,并返回总折扣,以及每个选项的单独折扣组件选择。 用户希望各个组件也能在健身页面上进行测试。
对于一小组属性和选项,这应该不是什么大问题,但我正在寻找大约 15 个或更多选项,并且总共有 50 多个属性,而不是全部适用于每个选项。
有什么办法可以把它分成多个表吗?谁能就我如何解决这个问题提出任何建议?我担心这里测试的性能和可读性。我还没有开始,但在开始之前我试图看看是否有任何替代方法,因为我并不真正熟悉这里可能提供的所有可能选项,并且使用一个巨大的 table 听起来不太好。
提前致谢!!
谢谢, 苏布
最佳答案
我一直在研究的一个选项是定义我自己的子表:
Main Table
SubTable:com.test.Table1
Property1 Property2
Option A 5 6
Option D 10 7
SubTable:com.test.Table2
Property3 Property4
Option B 12 n/a
Option C 15 10
MainTable 是实际的健身表。 “SubTable”只是一个字符串,我用作我的子表之间的分隔符,以找到新子表的开始。按照“SubTable”,我可以走通用路线并定义需要实例化的类来处理这个问题。
为了保持通用性,并尽可能接近通常的健身表,子表类的行为也应该与普通健身表的行为完全相同,使用 doTable() 方法。
由 MainTable.java 中的逻辑来解析各个行,将它们分组到子表中,使用反射实例化各个处理类,并将这些行传递到 doTable() 调用中。然后子表将执行自己的逻辑和验证,然后返回通过/失败行。然后 MainTable.java 将整理所有子表返回的所有结果并显示它们。
到目前为止,这似乎对我有用。如果子表行被正确分组,列分布确实会减少很多。
如果你能想到比这更好的出路,请告诉我。
关于testing - Fitnesse - 我们可以拆分一个依赖于很多值但没有中间结果的大表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6354083/