如何进行单元测试以检查日期时间的格式?

时间:2019-05-27 04:12:22

标签: java android unit-testing

我的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:毫米。不确定如何正确构建此测试

1 个答案:

答案 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);

测试:正确