首页> C#> FitNesse的/ FitSharp的-动态读取Column...

codeday· 2019-11-11
本文来自 codeday ,作者 codeday
我正在使用FitNesse / FitSharp(c#)进行测试.

我可以创建普通的固定装置,例如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(';') ... 
   }
}

任何想法 ?

最佳答案
查看Compute固定装置(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);
  }
  ...
}

您还可以遍历其他行集-查看遍历源代码.