В настоящее время я использую |>
из scalaz для достижения следующего:
(4 |> (s => (s + " is smaller than 10" ! (s < 10 must beTrue)))
Это позволяет мне повторно использовать .toString
объекта в описании контрольного примера. Но поскольку Specs2, похоже, поддерживает такие сложные вещи, как извлечение данных из источника тестов путем сканирования папки src
, они должны были подумать об этом конкретном случае использования.
Есть также вещи Given
, When
, Then
, но они выглядят чрезвычайно многословно.
Так как же использовать один и тот же объект для описания и сопоставления? Я думаю, что мое решение приемлемо, но скобки меня беспокоят. На самом деле это выглядит так:
(Set((1,2),(3,4)) |> (s => s + " has Set(1,2) as component of 1" ! (graph.componentOf(s,1) must_== Set(1,2))))