Skip to content

Instantly share code, notes, and snippets.

@hachi-eiji
Created November 26, 2013 14:09
Show Gist options
  • Save hachi-eiji/7658847 to your computer and use it in GitHub Desktop.
Save hachi-eiji/7658847 to your computer and use it in GitHub Desktop.
https://codeiq.jp/magazine/2013/11/1475/ のテストを考えてみる
import java.util.Calendar;
import java.util.Date;
public interface DateFactory {
Calendar getCalendar();
}
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 "こんばんは";
}
}
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