我有一个Android应用程序的测试用例,当用户快进并将视频后退15秒时,该视频案例可验证视频播放器活动中的时间没有变化。测试工作如下:
时间戳为hh:mm:ss格式。我使用以下方法获取播放时间(以秒为单位):
private int getPlayTime() {
String timestamp = getTimestamp();
return Integer.parseInt(timestamp.substring(0, 2)) * 3600 +
Integer.parseInt(timestamp.substring(3, 5)) * 60 +
Integer.parseInt(timestamp.substring(6)) ;
}
getTimestamp()
从Android视图获取时间戳字符串:
private String getTimestamp() {
AppCompatTextView playTime = (AppCompatTextView) solo.getView(/* View ID */);
return (String) playTime.getText();
}
这是assert语句:
assertEquals("Rewinding should bring us back 15 seconds. Start = " + startTime + ", end = " + endTime, startTime, endTime);
尽管值相同,但AssertEquals()
有时会返回失败:java.lang.AssertionError: Time should advance by 15 seconds. Start = 37, end = 37
这种情况发生的时间少于10%,并且不容易重现。我完全迷失了解释。这可能是JUnit错误吗?
您的断言似乎来自于其他测试用例,根据您的描述,单击前进按钮时触发。