困惑关于列表<位置>的Junit测试

时间:2018-05-01 20:22:06

标签: java list junit position junit4

我需要为List写一个测试,我可以弄清楚如何。我尝试编写一个类似于我的List测试的测试,但很明显,因为它们不同而且不一样,所以它不起作用。这是我到目前为止所拥有的。不知道从哪里开始。

    public void getPosition() {

    List<Positions> positionTest = new ArrayList<Positions>();

    String name = "position_1";
    ISO8601DateFormat df = new ISO8601DateFormat();
    Date asOfDate = null;
    try {
        asOfDate = df.parse("2017-01-28T22:25:51Z");
    } catch (ParseException e) {
        e.printStackTrace();
    }
    Double balance = 131750000.0;
    Date uploadDate = null;
    try {
        uploadDate = df.parse("2017-02-28T22:25:51Z");
    } catch (ParseException e) {
        e.printStackTrace();
    }

    String username = "admin";
    String filename = "position.xlsx";
    Integer loanCount = 2889;

    Positions p = new Positions(name, asOfDate, balance, uploadDate, username, filename, loanCount);

    positionTest.add(p);
    Mockito.when(scenarioDashboardService.getPostionFileSummaryData());
}

@Test
public void testgetPostionFileSummaryData() {

    getPosition();

    List<Positions> testPositions = scenarioDashboardService.getPostionFileSummaryData();
    assertEquals(1, testPositions.size());

    Date uploadDate = testPositions.get(0).getUploadDate();
    assertEquals("position_1", uploadDate);
}

我想从测试中获取一个日期,然后查看该日期是否与我为测试创建的日期相匹配。我打算在测试中写一个字符串但是因为我的输出是一个日期所以不能。

1 个答案:

答案 0 :(得分:1)

您可以将ISO8601DateFormat df = new ISO8601DateFormat();作为测试类的属性,然后在getPosition()方法和测试方法中使用它。 并替换

assertEquals("position_1", uploadDate);

Date expectedDate = df.df.parse("2017-02-28T22:25:51Z");
assertEquals(expectedDate, uploadDate);

您甚至可以使用String常量"2017-02-28T22:25:51Z"来查找getPositions()和测试方法中的常量。