我的Android应用程序提供了选择日期和时间的选项,然后将其格式化为格式为“ MM / DD / YYYY HH:mm”的字符串。然后将此字符串存储在数据库中。
我正在尝试创建一个单元测试,以测试日期和时间是否以正确的格式存储,但是我正在努力寻找正确的方法来进行存储。我已经尝试过
@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:毫米。不确定如何正确构建此测试
答案 0 :(得分:2)
我希望这对您有用。
在您的活动中创建以下方法。
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(new MainActivity()。checkDateFormat(“ 28/05/2019 10:06”),true);
测试:失败
assertEquals(new MainActivity()。checkDateFormat(“ 05/27/2019 10:06”),true);
测试:正确