Java代码实现周几判断:根据首字母判断,并使用JUnit测试覆盖
下面是一个可能的解决方案:
public class WeekdayChecker {
public String getWeekday(char firstLetter, char secondLetter) {
if (firstLetter == 'M' || firstLetter == 'm') {
return "Monday";
} else if (firstLetter == 'T' || firstLetter == 't') {
if (secondLetter == 'U' || secondLetter == 'u') {
return "Tuesday";
} else if (secondLetter == 'H' || secondLetter == 'h') {
return "Thursday";
}
} else if (firstLetter == 'W' || firstLetter == 'w') {
return "Wednesday";
} else if (firstLetter == 'F' || firstLetter == 'f') {
return "Friday";
} else if (firstLetter == 'S' || firstLetter == 's') {
if (secondLetter == 'A' || secondLetter == 'a') {
return "Saturday";
} else if (secondLetter == 'U' || secondLetter == 'u') {
return "Sunday";
}
}
return "Invalid input";
}
}
接下来是针对上述代码的JUnit测试类:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class WeekdayCheckerTest {
private final WeekdayChecker weekdayChecker = new WeekdayChecker();
@Test
public void testMonday() {
assertEquals("Monday", weekdayChecker.getWeekday('M', 'a'));
}
@Test
public void testTuesday() {
assertEquals("Tuesday", weekdayChecker.getWeekday('T', 'u'));
}
@Test
public void testThursday() {
assertEquals("Thursday", weekdayChecker.getWeekday('T', 'h'));
}
@Test
public void testWednesday() {
assertEquals("Wednesday", weekdayChecker.getWeekday('W', 'e'));
}
@Test
public void testFriday() {
assertEquals("Friday", weekdayChecker.getWeekday('F', 'r'));
}
@Test
public void testSaturday() {
assertEquals("Saturday", weekdayChecker.getWeekday('S', 'a'));
}
@Test
public void testSunday() {
assertEquals("Sunday", weekdayChecker.getWeekday('S', 'u'));
}
@Test
public void testInvalidInput() {
assertEquals("Invalid input", weekdayChecker.getWeekday('X', 'y'));
}
}
以上测试类中包含了最少的测试数据,以满足语句覆盖测试。每个测试方法测试了一个不同的输入情况,并使用assertEquals方法来判断期望结果值和实际返回值是否一致。
原文地址: https://www.cveoy.top/t/topic/pgZc 著作权归作者所有。请勿转载和采集!