昨日のやつ

本日も自宅で楽しくプログラミングの時間がやって参りました。
http://d.hatena.ne.jp/kijitoraneko/20100621/1277128211
Junit4.7を使っていたのだけれども、extends Testcaseとかいらないですよね。ちゃんと頭を整理しないといけないな。
昨日のコードを

public class KijitoranekoTest extends TestCase{
↓
public class KijitoranekoTest

に変更するだけですと、

private void doUserTest() throws EntityNotFoundException {
	UserService userService = UserServiceFactory.getUserService();
	assertEquals(true, userService.isUserAdmin());
	assertEquals(true, userService.isUserLoggedIn());
}

のassertEqualsはコンパイルエラーになりますので、

import static org.junit.Assert.assertEquals;

もしくは

import static org.junit.Assert.*;

と言った感じでimportするのだね。それがJunit4なのだね。アノテーションベースなのだね。継承なんていらないのだね。


あとJunit4.4以降ではassertThatってメソッドが使える。上のdoUserTest()はこうなる。

private void doUserTest() throws EntityNotFoundException {
	UserService userService = UserServiceFactory.getUserService();
	assertThat(true, is(userService.isUserAdmin()));
	assertThat(true, is(userService.isUserLoggedIn()));
}


↓これらの文に意味はないけれど、こんな風にも書けるということ。直感的にタイプセーフに書いていけるということ。

assertThat(true, is(userService.isUserLoggedIn()));
↓
assertThat(true, is(equalTo(userService.isUserLoggedIn())));//同上
↓
assertThat(true, is(not(not(userService.isUserLoggedIn()))));//同上