Java 如何通过单元测试来检查datetime的格式?
我的android应用程序提供了选择日期和时间的选项,然后将其格式化为格式为“MM/DD/YYYY HH:MM”的字符串。然后将该字符串存储在数据库中 我正在尝试创建一个单元测试,测试日期和时间是否以正确的格式存储,但我正在努力找到正确的方法。我试过这个Java 如何通过单元测试来检查datetime的格式?,java,android,unit-testing,Java,Android,Unit Testing,我的android应用程序提供了选择日期和时间的选项,然后将其格式化为格式为“MM/DD/YYYY HH:MM”的字符串。然后将该字符串存储在数据库中 我正在尝试创建一个单元测试,测试日期和时间是否以正确的格式存储,但我正在努力找到正确的方法。我试过这个 @Test public void testDateTimeFormat() { DateActivity dateActivity = new DateActivity(); Calendar currentDateTime
@Test
public void testDateTimeFormat() {
DateActivity dateActivity = new DateActivity();
Calendar currentDateTime = Calendar.getInstance();
Assert.assertEquals( dateActivity.showDateTime(currentDateTime), "MM/DD/YYYY HH:mm");
showDateTime方法将提供当前日期和时间,并应以正确的格式返回。我尝试使用assert equals来比较这两种格式,以表明它的格式正确,但它似乎没有正确地进行比较,它只是说它们不一样,它没有检测到MM/DD/YYYY HH:MM的格式。不确定如何正确构建此测试我希望这对您有用 在活动中创建以下方法
public boolean checkDateFormat(String s) {
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/YYYY HH:MM");
Date date1 = new Date(s);
s = formatter.format(date1);
Date date = new Date();
String strDate = formatter.format(date);
System.out.println(strDate);
System.out.println(s);
if (s.equals(strDate)) {
return true;
} else {
return false;
}
}
下面给出了单元测试代码
@Test
public void isDateFormat() throws Exception {
assertEquals(new MainActivity().checkDateFormat("27/05/2019 10:06"),true);
}
若您提供的字符串匹配,那个么测试将通过,若不匹配,那个么它将失败
assertEquals(新的MainActivity().checkDateFormat(“28/05/2019 10:06”),正确)
测试:失败
assertEquals(新的MainActivity().checkDateFormat(“05/27/2019 10:06”),正确)
测试:正确您正在进行仪器测试吗?DateActivity正在扩展Appcompat,对吗?@notTdar否我正在尝试设置单元测试。我对这样的测试是新手,所以我可能做得不正确。是的,DateActivity正在扩展AppCompatOK,如果没有插装测试,您不能使用activity/fragment或View的实例,您只能测试不扩展任何android相关组件的Java类。@notTdar谢谢,我很感激。我会考虑找到另一个解决方案祝你好运,“机器人分子”你可以探索它。