public class KozaManagerTest {
/** テスト対象クラス */
private KozaManager target;
/**
* テストの初期化
* 各テスト実行前に起動する
*/
@Before
public void initClass() {
target = new KozaManager();
}
/**
* コンストラクタが起動したかどうかを確認する
* テストケース
*/
@Test
public void testIsFile() {
assertNotNull(target);
}
}
今回のテストケースを実装していますが、ポイントとしては、以下の点が挙げられます。
@Beforeは書くテストケース(メソッド)が起動する前に動く
@Testはテストケース(メソッド)に付ける
上のコードでは、コンストラクタが起動してフィールド変数「target」にインスタンスが設定されているかどうか?を判定します。targetにインスタンスが設定されていない=コンストラクタが起動している最中に例外(Exception)が発生して@Befireのついているメソッドの処理target = new KozaManager()の処理が終わらないうちに(targetに値が設定されないうちに)例外を受け取る処理が動くためです。
具体的に
下の動画を見てもらうとわかると思います。
この処理は、コンストラクタで例外を発生させています。
public KozaManager() {
// 操作するファイルを指定する
File file = new File("resources/koza.csv");
try {
write = new BufferedWriter(new FileWriter(file));
if (file.exists()) {
read = new BufferedReader(new FileReader(file));
throw new IOException("テスト例外");
}
} catch (IOException ie) {
ie.printStackTrace();
System.out.println("ファイルオープンに失敗しました。" + ie.getMessage());
System.exit(-1);
}
}
public class Data {
/** ユーザー名 */
private String name;
/** パスワード */
private String password;
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* @return the password
*/
public String getPassword() {
return password;
}
/**
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
}
}