java - 测试 SimpledateFormat 时的 JUnit AssertionError

标签 java android junit4

使用 JUnit 4.12 和 AndroidStudio 我正在尝试测试以下方法 结果似乎匹配 我不知道为什么我得到了结果 java.lang.AssertionError

待测方法:

public String dateNow() {
    SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy_hh-mm-ss");
    String date = sdf.format(new Date());
    return date;
}

我的测试类:

private Addons mAddons;

@Before
public void setUp() throws Exception{
    mAddons = new Addons();
}

@Test
public void testDateNow() throws Exception {

    final String reality = mAddons.dateNow().substring(0,10);
    final String expected = "09-08-2017";
    assertSame("testDateNow() :", expected, reality);
}

控制台输出:

java.lang.AssertionError: testDateNow() : expected same:<09-08-2017> was not:<09-08-2017>

Expected :09-08-2017
Actual   :09-08-2017

我不知道为什么会失败。任何人都愿意为我指明正确的方向吗?

最佳答案

assertSame 检查两个参数是否是同一个对象。他们不是。

如果你想检查它们是否有相同的内容,你应该使用 assertEquals 代替。

关于java - 测试 SimpledateFormat 时的 JUnit AssertionError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45592405/

相关文章:

java - IDE如何使用https浏览?

Java线程wait()notify()在一个方法中

Java:防御性复制 int[] 的最有效方法?

android - 将 androidPlugin 更新到 3.2.1 后无法解析自定义 buildType 的依赖关系

android - 在 Android 应用程序更新 Dagger 期间找不到符号 newDispatchingAndroidInjector

android - ADB - 将窗口带回顶部

java - 排除特定测试在 jUnit 中并行运行

java - 黑莓邮件 - 多个内容附件

java - 自定义 Selenium Java Junit4 Webdriver 导出器

android - ActivityInstrumentationTestCase2 与 ActivityTestRule