LoginSignup
0
0

More than 5 years have passed since last update.

JBehaveのExamplesTableのパラメータにハイフンを入れるとコケる顛末

Last updated at Posted at 2014-11-28

まだまだ未知の機能が多い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=|**}
|カテゴリー|
|-- 選択してください --|

通った!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0