如何在Junit中使用assertEquals解决此问题?

时间:2019-04-21 01:54:54

标签: java junit

请帮助我解决以下问题,我的Junit测试失败,因为我的输出是

"09:39:43.704 [main] INFO by.iba.gomel.ShapeController - 145"

但是我只需要“ 145” ShapeController.LOGGER.info("{}", ShapeController.sum);

@Test
public void testSumma() {

    final Shape[] newShapes = new Shape[5];
    ShapeController.initializeArray(newShapes);
    ShapeController.summa(newShapes);
    Assert.assertEquals("these objects should be  equal", "145", this.log.getLog());
}

2 个答案:

答案 0 :(得分:2)

如果不更改日志格式和类名,则可以使用this.log.getLog().split("ShapeController - ")[1]

但是要警惕这种硬编码的东西。无论如何,如果您更改了某些内容,此测试用例将中断并通知您。

答案 1 :(得分:1)

如果Java库(例如 Hamcrest 以数字或单词结尾,则可以使用1在句子中进行断言:

assertThat("myStringOfNote", endsWith("Note"))

这可以转换为您的用例:

assertThat(this.log.getLog(), endsWith("145"))