[Seasar-user:13721] Re: [S2JUnit4]空白を含むテストデータでのassertEqualsの動作について

Toshihiro Nakamura [E-MAIL ADDRESS DELETED]
2008年 4月 14日 (月) 13:41:30 JST


中村(taedium)です。

> テストクラスのbeforeメソッドでsetTrimStringにfalseを設定し、
> Excelの期待値のセルに"ABCD "(最後に1つスペースを含む。ダブルクォートも入力)
> と入力。
> 実際の値はABCD(最後にスペースなし)となっているときassertEqualsに成功してしまいます。

私の環境でも再現しました。

> 詳細にみていくと、S2testCase.assertEquals内で
>  ct.equals(expectedValue, actualValue)
> がtrueを返しているのが問題なように見えます。ちなみにここでの値は
> expectedValue="ABCD "
> actualValue="ABCD"
> です。

ここの比較でsetTrimStringメソッドで指定した設定が
活かされていないのが原因のようです。
(デフォルトでトリムするようになっているので
そちらの動作になってしまっています)

> どのようにすれば、このような場合にassertEqualsが失敗するようになるのでしょうか?

Seasar2のプログラムを直すのが早いと思います。
2つのファイルを修正してみました(添付します)。
こちらで試してみてください。

-- 
Nakamura Toshihiro <[E-MAIL ADDRESS DELETED]>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: S2TestCase.java
型:         application/octet-stream
サイズ:     20376 バイト
説明:       無し
URL:        http://ml.seasar.org/archives/seasar-user/attachments/20080414/3311e1d4/attachment-0002.obj 
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: DataRowImpl.java
型:         application/octet-stream
サイズ:     7163 バイト
説明:       無し
URL:        http://ml.seasar.org/archives/seasar-user/attachments/20080414/3311e1d4/attachment-0003.obj 


Seasar-user メーリングリストの案内