読書会(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」
(以上)
[ 戻る ]