- メソッドを実行した際に(何かしらの影響で)オブジェクトの内部状態などが更新され、そのメソッド自身や、他のメソッドの振る舞いに影響を与えること
例)- 実行する毎に何が取得できるのか分からない
- 現在時刻の取得
- グローバル変数の参照
- ファイルやDBからの読み込み
など
- 入力だけで終わってしまうと、何を入力したかテストできないもの
- ファイルやDBへの書き込み
- 標準出力(何も指定されなかったときに使われる出力先)
など
- 実行する毎に何が取得できるのか分からない
- 一般的には、副作用を持たないメソッドよりもテストが難しくなる
参考サイト、文献
- 渡辺修司.JUnit実践入門── 体系的に学ぶユニットテストの技法.技術評論社, 2012, p.45, p.359