我使用FitNesse / FitSharp (c#)进行测试。
我可以创建像ColumnFixtures、RowFixtures、DoFixtures等普通的fixture,但不能,我正在寻找一种读取列并动态绑定它们的方法。
这样做的原因是,我自己的库中仍然有大量的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(';') ...
}
}有什么想法吗?
发布于 2017-06-29 11:02:02
看一下Compute fixture (https://fitsharp.github.io/Fit/ComputeFixture.html)的源代码,看看它是否有帮助。
您可以编写一个像这样动态处理单元格的fixture:
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源代码。
https://stackoverflow.com/questions/44754603
复制相似问题