2009-06-30 7 views
3

Je dois passer un objet (mon propre objet métier) entre deux tables dans une page. La valeur est obtenue à partir de l'appel getter dans un appareil et doit ensuite être utilisée comme champ dans un autre appareil (les deux ColumnFixtures). Veuillez noter que l'objet à transmettre n'est ni primitif ni String et la conversion n'est pas si simple. Est-ce même possible? Si oui, alors comment?Comment passer un objet arbitraire dans la page Fitnesse?

Répondre

0

Je vais vérifier la bibliothèque, merci. En attendant, je viens de trouver une façon différente et peut-être mieux:

utiliser l'API fit et enregistrer la valeur dans la carte des symboles. Vous pouvez simplement définir la clé pour la carte via un champ normal, puis l'extraire comme ceci: Fixture.setSymbol (...) puis Fixture.getSymbol (...). Les méthodes mentionnées ci-dessus sont également statiques, mais cette approche offre un peu plus de flexibilité, car la valeur de la variable n'est pas câblée dans le code, mais plutôt indexée dans une carte :-)

1

Supposons que vous avez deux tables de fixation de la colonne tels que:

|TableOne   | 
|inputOne|outputOne()| 
|7  |14   | 

et

|TableTwo   | 
|inputTwo|outputTwo()| 
|6  |20   | 

puis dans le code correspondant, vous pouvez stocker l'objet que vous souhaitez passer dans une variable statique (I » m en utilisant un int ici, mais tout type fonctionnera):

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; 
    } 
} 

Au lieu de nous Cependant, je vous recommande de consulter la bibliothèque de Rick Mugridge (en particulier DoFixture) qui permet aux appareils de communiquer de façon plus élégante.

Questions connexes