Как передать произвольный объект на страницу Fitnesse? - PullRequest
3 голосов
/ 30 июня 2009

Мне нужно передать объект (мой собственный бизнес-объект) между двумя таблицами на одной странице. Значение получается из вызова геттера в одном приборе и затем должно использоваться как поле в другом приборе (оба ColumnFixtures). Обратите внимание, что передаваемый объект не является ни примитивным, ни String, и преобразование не так просто. Это вообще возможно? Если так, то как?

Ответы [ 2 ]

2 голосов
/ 30 июня 2009

Предположим, у вас есть две таблицы столбцов, например:

|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 s, однако, я рекомендую вам взглянуть на fitlibrary Рика Магриджа (в частности, DoFixture), который позволяет приборам общаться более элегантно.

0 голосов
/ 03 июля 2009

Я проверю подходящую библиотеку, спасибо. А пока я только что нашел другой и, возможно, лучший способ:

используйте подходящий API и сохраните значение в карте символов. Вы можете просто установить ключ для карты через обычное поле, а затем получить его следующим образом: Fixture.setSymbol (...), а затем Fixture.getSymbol (...). Вышеупомянутые методы также являются статическими, но этот подход предлагает немного большую гибкость, потому что значение переменной не жестко запрограммировано в коде, а скорее проиндексировано в карте: -)

...