代码之家  ›  专栏  ›  技术社区  ›  Petr Macek

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

  •  3
  • Petr Macek  · 技术社区  · 15 年前

    我需要在一页中的两个表之间传递一个对象(我自己的业务对象)。该值从一个fixture中的getter调用中获取,然后应在另一个fixture(两个columnfixture)中用作字段。请注意,要传递的对象既不是基元也不是字符串,转换也不是那么简单。有可能吗?如果是,那怎么办?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Matthew Murdoch    15 年前

    假设您有两个列夹具表,例如:

    |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 但是,我建议你去看看里克·穆格里奇的菲特图书馆(尤其是 DoFixture )从而使固定装置以更优雅的方式进行通信。

        2
  •  0
  •   Petr Macek    15 年前

    我去看看Fitlibrary,谢谢。 同时,我发现了不同的,可能更好的方法:

    使用fit API并将值保存到符号映射中。您只需通过常规字段设置映射的键,然后像这样检索它:fixture.setsymbol(…)然后fixture.getsymbol(…)。 上面提到的方法也是静态的,但是这种方法提供了更多的灵活性,因为变量值在代码中不是硬连线的,而是在映射中索引的:—)