2017-06-26 2 views
2

FitNesse/FitSharp(c#)をテスト目的で使用しています。FitNesse/FitSharp - ColumnFixtureの列を動的に読み取る

ColumnFixtures、RowFixtures、DoFixturesなどのような通常のフィクスチャを作成できますが、列を読み込んで動的にバインドする方法を探していません。

私はまだ自分のライブラリに膨大な量のPojoオブジェクトを持っているので、すべてのクラスメンバーを再度繰り返す必要はありません。そのため、私は列を動的に処理する方法を探しています。

!|Create| pojoType | record | pojoName | 
|Name | LastName | Address| Misc  | 
| a | b  | c  | d  | 


public class DynamicHandling : DoFixture() { 
    public void CreateRecord(string type, string name) { 
     var clazz = GetClazzOfType(); 

     var headers = GetHeadersOfColumn(); 
     var values = GetValuesOfColumn(); 

     var pojo = DoBindingAndAssignValues(headers, rows, clazz); 

     // ... Continue with whatever e.g. ... 

     var name = pojo.Name; 
     var lastName = pojo.LastName; 
     var address = pojo.Address; 

     address.split(';') ... 
    } 
} 

+0

あなたがしようとしていることがわかりません。 pojoTypeのインスタンスを作成し、プロパティName = aを割り当てるか、または列コンストラクタのパラメータですか? pojoNameとは何ですか?そして、それが作成されたらpojoで何をしますか? –

+0

私の質問の要点は次のとおりです。 FitNesseの列全体を読み込み、自分でバインディングを作成するにはどうすればよいですか。 私のpojoなどのインスタンスを作成することは次のステップですが、問題はありません。 – NiceGuy

答えて

2

Compute fixture(https://fitsharp.github.io/Fit/ComputeFixture.html)のソースコードを見て、役立つかどうかを確認してください。トラバースのソースコードをチェックアウト - あなたが行き来できる行の他のセットをあります

public class MyFixture: Interpreter { 
    public void Interpret(CellProcessor processor, Tree<Cell> table) { 
    new Traverse<Cell>() 
     .Rows.Header(row => FunctionThatDoesSomethingWithTheHeaderRow(row)) 
     .Rows.Rest(row => FunctionThatDoesSomethingWithEachSubsequentRow(row)) 
     .VisitTable(table); 
    } 
    ... 
} 

あなたは、このように動的に細胞を処理治具を書くことができます。

+0

ありがとう、それはまさに私が探していたものです。 – NiceGuy

関連する問題