繁体   English   中英

如何在Fitnesse页面中传递任意对象?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM