BuddyBuild测试失败,但在本地工作正常

时间:2016-11-03 09:24:18

标签: android unit-testing build

嗨我在BuddyBuild上构建测试时遇到问题。

我要测试的方法:

    public static String convertTimeToDepartureDate(long timeInMillis) {
       Calendar calendar = Calendar.getInstance();
       calendar.setTimeInMillis(timeInMillis);
       SimpleDateFormat format = new SimpleDateFormat("d MMM HH:mm", Locale.ENGLISH);
       return format.format(calendar.getTime());
    }

这是我的测试:

    @Test
public void timeToDepartureTest() throws Exception {
        String dateDeparture = TimeUtils.convertTimeToDepartureDate(timeMillis);
        assertEquals("Date have wrong format or numbers!", "7 Oct 16:45", dateDeparture);
}

这是我在互联网上找到的一种解决方案,但不起作用:

    @Test
public void timeToDepartureTest() throws Exception {
    synchronized (Calendar.getInstance()) {
        String dateDeparture = TimeUtils.convertTimeToDepartureDate(timeMillis);
        assertEquals("Date have wrong format or numbers!", "7 Oct 16:45", dateDeparture);
    }
}

在我们的机器上工作正常。所有测试都通过了但在BB上并没有奏效。 这是来自BB控制台的日志:

...
   :app:testDebugUnitTest
    com.package.dao.TimeUtilsTest > timeToDepartureTest FAILED
    junit.framework.ComparisonFailure at TimeUtilsTest.java:46
    com.package.dao.TimeUtilsTest > timeToMinutesAndHoursTest FAILED
    junit.framework.ComparisonFailure at TimeUtilsTest.java:52
    com.package.dao.TimeUtilsTest > timeToSpecificFormatTest FAILED
    junit.framework.ComparisonFailure at TimeUtilsTest.java:70
    com.package.dao.TimeUtilsTest > timeToOpeningHoursTest FAILED
    junit.framework.ComparisonFailure at TimeUtilsTest.java:64
12 tests completed, 4 failed
...

我觉得BB很好用。我们的测试中存在问题。你能想到如何解决它吗? 谢谢你。

1 个答案:

答案 0 :(得分:0)

问题出在时区。 BuddyBuild使用PST和本地机器/代码使用默认EST或其他。 解决方案是为每个时间值定义的时区。

代表SimpleDateFormat

 //...           
 SimpleDateFormat format = new SimpleDateFormat("d MMM HH:mm", Locale.getDefault());
    format.setTimeZone(TimeZone.getTimeZone("UTC"));
 //...

Calendar

//...
Calendar cal = Calendar.getInstance();
cal.setTime(dateConverted);
cal.setTimeZone(TimeZone.getTimeZone("UTC"));
//...

现在测试将通过。

相关问题