FitNesse / FitSharp - 动态读取ColumnFixture的列

时间:2017-06-26 07:10:32

标签: c# testing fitnesse fitsharp

我正在使用FitNesse / FitSharp(c#)进行测试。

我可以像ColumnFixtures,RowFixtures,DoFixtures等一样创建普通的灯具。但不是我正在寻找一种方法来读取列并动态绑定它们。

原因是,我自己的库中仍然有大量的Pojo对象,并且不想再次重复所有的类成员。因此,我正在寻找一种动态处理列的方法。

e.g。

$dom = new DOMDocument();
$dom->loadHTML($html);

$xpath = new DOMXPath( $dom );
$thirdColumns = $xpath->query( '//table/tbody/tr/td[3]' );

$result = array();
foreach( $thirdColumns as $thirdColumn )
{
    $result[] = $thirdColumn->nodeValue;
}

var_dump( $result );

有什么想法吗?

1 个答案:

答案 0 :(得分:3)

查看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);
  }
  ...
}

您可以遍历其他行集 - 请查看Traverse源代码。