まだまだ未知の機能が多いJBehave。
今回はExamplesTableのパラメータで詰まった。
ExamplesTableで何かコケる
落ちてたのはここ。
Then 入力画面の入力欄が以下の通りになっている:
|カテゴリー|
|-- 選択してください --|
(FAILED)
(java.lang.AssertionError: org.jbehave.core.model.ExamplesTable$RowNotFound: 0)
何故だ!
で、ハイフン消したらすんなり動いた。
つまりハイフンはダメなんですね。。。
さて、なぜだめなのかちょっとソースを追っかけてみる。
ExamplesTable.java
public class ExamplesTable {
private static final Map<String, String> EMPTY_MAP = Collections.emptyMap();
private static final String EMPTY_VALUE = "";
public static final ExamplesTable EMPTY = new ExamplesTable("");
private static final String ROW_SEPARATOR = "\r?\n";
private static final String NEW_LINE = "\n";
private static final String HEADER_SEPARATOR = "|";
private static final String VALUE_SEPARATOR = "|";
private static final String IGNORABLE_SEPARATOR = "|--";
なんと、|--は無視レコードになるのですか。
しかしなー、画面仕様上、プルダウンのデフォルトは「-- 選択してください --」なのだよ。
改めてJBehaveのTabular Parametersのページを確認してみるとこんな記述が。
Specifying inlined separators
The separators are also configurable via inlined properties:
{ignorableSeparator=!--,headerSeparator=!,valueSeparator=!,commentSeparator=#}
!header 1!header 2! .... !header n!
!-- An ignored row --!
!value 11#comment in value!value 12! .... !value 1n!
...
!-- Another ignored row --!
!value m1!value m2! .... !value mn!
ということは無視レコードの書式は変更できるのかな?
やってみよう。
Then 入力画面の入力欄が以下の通りになっている:
{ignorableSeparator=|**}
|カテゴリー|
|-- 選択してください --|
通った!