Created
November 26, 2013 14:09
-
-
Save hachi-eiji/7658847 to your computer and use it in GitHub Desktop.
https://codeiq.jp/magazine/2013/11/1475/
のテストを考えてみる
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.Calendar; | |
import java.util.Date; | |
public interface DateFactory { | |
Calendar getCalendar(); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.Calendar; | |
public class Greeter { | |
private Calendar calendar; | |
public Greeter(Calendar calendar) { | |
this.calendar = calendar; | |
} | |
public String greeting() { | |
int hourOfDay = calendar.get(Calendar.HOUR_OF_DAY); | |
if (hourOfDay >= 5 && hourOfDay < 12) { | |
return "おはようございます"; | |
} | |
if (hourOfDay >= 12 && hourOfDay < 18) { | |
return "こんにちは"; | |
} | |
return "こんばんは"; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import org.junit.Test; | |
import java.util.Calendar; | |
import java.util.Date; | |
import java.util.SimpleTimeZone; | |
import java.util.TimeZone; | |
import static org.hamcrest.CoreMatchers.*; | |
import static org.junit.Assert.*; | |
public class GreeterTest { | |
@Test | |
public void test_朝AM5時から12時の間() throws Exception{ | |
Calendar date = getDate(5, 0, 1); | |
Greeter greeter = new Greeter(date); | |
String message = greeter.greeting(); | |
assertThat(message, is("おはようございます")); | |
} | |
@Test | |
public void test_朝5時ちょうど() throws Exception { | |
Calendar date = getDate(5, 0, 0); | |
Greeter greeter = new Greeter(date); | |
String message = greeter.greeting(); | |
assertThat(message, is("おはようございます")); | |
} | |
@Test | |
public void test_11時59分59秒() throws Exception { | |
Calendar date = getDate(11, 59, 59); | |
Greeter greeter = new Greeter(date); | |
String message = greeter.greeting(); | |
assertThat(message, is("おはようございます")); | |
} | |
@Test | |
public void test_12時から18間() throws Exception{ | |
Calendar date = getDate(15, 30, 0); | |
Greeter greeter = new Greeter(date); | |
String message = greeter.greeting(); | |
assertThat(message, is("こんにちは")); | |
} | |
@Test | |
public void test_12時ちょうど() throws Exception{ | |
Calendar date = getDate(12, 0, 0); | |
Greeter greeter = new Greeter(date); | |
String message = greeter.greeting(); | |
assertThat(message, is("こんにちは")); | |
} | |
@Test | |
public void test_17時59分59秒() throws Exception{ | |
Calendar date = getDate(17, 59, 59); | |
Greeter greeter = new Greeter(date); | |
String message = greeter.greeting(); | |
assertThat(message, is("こんにちは")); | |
} | |
@Test | |
public void test_18時から5時のあいだ() throws Exception{ | |
Calendar date = getDate(19, 59, 59); | |
Greeter greeter = new Greeter(date); | |
String message = greeter.greeting(); | |
assertThat(message, is("こんばんは")); | |
} | |
@Test | |
public void test_18時ちょうど() throws Exception{ | |
Calendar date = getDate(18, 0, 0); | |
Greeter greeter = new Greeter(date); | |
String message = greeter.greeting(); | |
assertThat(message, is("こんばんは")); | |
} | |
@Test | |
public void test_4時59分59秒() throws Exception{ | |
Calendar date = getDate(4, 59, 59); | |
Greeter greeter = new Greeter(date); | |
String message = greeter.greeting(); | |
assertThat(message, is("こんばんは")); | |
} | |
private Calendar getDate(final int hour, final int min, final int second){ | |
final int year = 2013; | |
final int month = Calendar.JANUARY; | |
final int day = 2; | |
DateFactory factory = new DateFactory() { | |
@Override | |
public Calendar getCalendar() { | |
Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("Asia/Tokyo")); | |
cal.clear(); | |
cal.set(year, month, day, hour, min, second); | |
return cal; | |
} | |
}; | |
return factory.getCalendar(); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment