Проверить значение HashSet в ячейке таблицы FitNesse?
Используя FitNesse с FitSharp (.Net), я получил свойство объекта, который является HashSet перечисления, например
public enum Fubar { Foo, Bar }
public class Test
{
public HashSet<Fubar> SetOfFubar { get; set; }
}
Я хотел бы проверить это просто, например, в массиве, например:
|MyArrayFixture|
|SetOfFubar|
|Foo|
|Foo,Bar|
|Bar|
||
Это просто приводит к тому, что все строки помечены как отсутствующие и красные, а набор лишних строк показывает что-то вроде:
System.Collections.Generic.HashSet`1[MyNamespace.Fubar] surplus
Какой самый простой способ получить FitNesse с FitSharp (.Net), чтобы понять HashSets?
1 ответ
Вы можете написать оператор разбора. Вот небольшой пример из http://fitsharp.github.io/Fit/WriteOurOwnCellOperator.html который анализирует строку "pi" в числовое значение.
using fitSharp.Fit.Operators; using fitSharp.Machine.Engine; public class ParsePi: CellOperator, ParseOperator<Cell> {
Переопределение метода CanParse определяет, какие ячейки обрабатываются нашим оператором. Мы проверяем на "пи" в ячейке, а также, что мы работаем с числовым типом. Это сохраняет нормальное поведение, если мы используем "pi" в качестве строкового ввода или ожидаемого значения.
public bool CanParse(Type type, TypedValue instance, Tree<Cell> parameters) { return type == typeof(double) && parameters.Value.Text == "pi"; }
Переопределение метода Parse изменяет поведение при анализе ячейки для создания ввода или ожидаемого значения.
public TypedValue Parse(Type type, TypedValue instance, TreeTree<Cell> parameters) { return new TypedValue(System.Math.PI); } }