Проверить значение 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);
  }
}
Другие вопросы по тегам