[英]How to pass arbitrary object within Fitnesse page?
我需要在一个页面中的两个表之间传递一个对象(我自己的业务对象)。 该值来自一个夹具中的getter调用,然后应该用作另一个fixture(两个ColumnFixtures)中的字段。 请注意,要传递的对象既不是原始对象也不是String,转换并不那么简单。 它甚至可能吗? 如果是这样,那怎么样?
假设您有两个列夹具表,例如:
|TableOne |
|inputOne|outputOne()|
|7 |14 |
和
|TableTwo |
|inputTwo|outputTwo()|
|6 |20 |
然后在相应的代码中,你可以存储你希望传递给静态变量的对象(我在这里使用int
,但任何类型都可以):
public class TableOne extends fit.ColumnFixture {
public static int result;
public int inputOne;
public int outputOne() {
result = inputOne * 2;
return result;
}
}
public class TableTwo extends fit.ColumnFixture {
public int inputTwo;
public int outputTwo() {
return TableOne.result + inputTwo;
}
}
但是,我建议您不要使用ColumnFixture
来调查Rick Mugridge的fitlibrary(特别是DoFixture
),它允许灯具以更优雅的方式进行通信。
我会检查一下fitlibrary,谢谢。 与此同时,我刚刚找到了不同的,可能更好的方法:
使用fit API并将值保存到符号映射中。 您可以通过常规字段设置地图的键,然后像这样检索它:Fixture.setSymbol(...)然后Fixture.getSymbol(...)。 上面提到的方法也是静态的,但这种方法提供了更多的灵活性,因为变量值在代码中没有硬连线,而是在地图中索引:-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.