読書会(JUnit実践入門)第7回議事録

[ 戻る ]


============================================
Java読書会BOF 「JUnit実践入門」を読む会 第7回
============================================
.. csv-table:: 開催概要

  "日時", "2013年9月28日 10:00 - 14:30"
  "場所", "川崎市教育文化会館 第3会議室"
  "出席者(敬称略)", "高橋(智)、中澤、村山、遠藤、山田、門脇、吉本、岩室(書記)"

議事
====

第18章 ベーシックなテスト
======================
(p.367 解説から)

- 注4:「厳密」とはどういう意味か?
  ⇒ await抜けてきた瞬間にはまだスレッドが残っているから?

第19章 アサーションとフィクスチャ
-----------------------------

19.1 リストのアサーション
----------------------

- リスト19.1: 返り値を格納する変数の名前は、何故 sut ではなく actual なのか?
  ⇒ テスト対象自体のオブジェクトではなく、テスト対象が処理した結果の値だから。

- リスト19.3: 解説記載のようなデメリットもあるが、あまり良くなったように感じられない。

- リスト19.4: テストコード自体はシンプルになるが、ここだけを見ると本末転倒感がある。
  費用対効果が良くなければここまでやらないのではないか? (リスト19.1レベルでよい)

- JavaはDSLに向かないので、テストコード自体をJavaで書くのは大変。
- ユニットテストをGroovy等で書くと良いのではないか。
  ⇒ その場合、対応できる人員が限られるのではないか。
- JavaにMapのリテラルがあればもう少し軽減されるのでは。

19.2 JavaBeansのアサーション
--------------------------

- データファイルは1行のみか? ⇒ 複数行対応。

- エラーが同時に1箇所しか検出されないので、プロパティの数が増えると手間がかかる。

- テストコードはきれいになるが、泥くさい部分がカスタムMachterに移っただけと言えるのではないか。

19.3 複数行テキストのアサーション
-----------------------------

19.4 境界値のテスト
-----------------

19.5 フィクスチャを用いたパラメータ化テスト
--------------------------------------

19.6 組み合わせテスト
-------------------

- assumeTrue()とは?
  ⇒ 引数が偽の場合、エラー扱いにならない例外を送出する。

第20章 テストダブルの活用
======================

20.1 システム時間に依存するテスト
-----------------------------

- p.392: 「29を返す」⇒「28を返す」

20.2 例外ハンドリングのテスト
--------------------------

- ExpectedException を使う必要があるのか? 単なる try/catch ではだめなのか?

20.3 外部システムに依存するテスト
-----------------------------

- p.399: str.append(new String(...)) の new String() は不要。StringBuilderには append(char[], int offset, int len) がある。

- 宿題: finally に close() が記述されているとき、 read/write で失敗したら、例外はどのように送出されるのか?

20.4 インタフェースとスタブによるテスト
----------------------------------

20.5 サーブレットのテスト
----------------------

- p.405: 「text/plain; utf-8」⇒「text/plain; charset=UTF-8」
  本文は間違っているがコードは正しい。

- Servletクラスのオブジェクトを自前でnewしても良いか? ⇒ 良い。

- verify() は何のメソッドか? (参考⇒p.195)

- mockit のコードは、ある意味わかり易くなるかもしれないが、Javaコードとしては直観に反する振る舞いなので、Javaに慣れ過ぎていると逆に理解しづらい。

- リスト20.10: setContentType() はbodyを生成する前に呼ぶ必要があるのではないか?
  ⇒ 本来はその通りだが、サーブレットコンテナのバッファが溢れるまでは大丈夫ではないか?

- 宿題: mockitでメソッド呼び出し順序は検証できるのか?

20.6 Hello Worldのテスト
-----------------------

- p.410: 「PrintWriter」⇒「PrintStream」

(以上)


[ 戻る ]