JUnit测试用例失败:java.lang.AssertionError:期望为null,但是:<null>

时间:2017-05-24 14:40:16

标签: java junit jackson

我正在使用JUnit 4.12和Jackson

@Test
public void testFailToGetDataAsString() {
    Receipt receipt = new Receipt(null);

    assertNull(receipt.getDataAsString());
}

我正在测试的方法如下(this.data只是一个空图):

public String getDataAsString() {
    try {
        return new ObjectMapper().writeValueAsString(this.data);
    } catch (Exception e) {
        return null;
    }
}

最后,我运行测试并检查&#34; null&#34;不是&#34;&lt; null&gt;&#34;。

2 个答案:

答案 0 :(得分:4)

addText: function(opts) { opts = opts || {}; var options = _.extend({}, MEME.TEXT.defaults, opts); var text = options.text; delete options.text; var txt = new fabric.Text(text, options); if(document.getElementById('text-shadow').checked) { ctx = canvas.getContext('2d'); ctx.shadowColor = "black"; ctx.shadowOffsetX = 2; ctx.shadowOffsetY = 2; ctx.shadowBlur = 1; } if(document.getElementById('text-glow').checked) { ctx = canvas.getContext('2d'); ctx.shadowColor = "yellow"; ctx.shadowOffsetX = 5; ctx.shadowOffsetY = 5; ctx.shadowBlur = 10; } canvas.add(txt); txt.center(); MEME.objects.text.push(txt); MEME.makeSelected(); }, 不返回null,因为getDataAsString()不会抛出异常,而是返回一个字符串return new ObjectMapper().writeValueAsString(this.data);,当然不等于"< null >"。如果null返回此自定义null类型,则应该返回null,而不是仅在捕获异常时返回null。

答案 1 :(得分:1)

我终于将方法代码更改为:

public String getDataAsString() {
    try {
        if (this.data != null) {
            return new ObjectMapper().writeValueAsString(this.data);
        }
    } catch (Exception e) {
    }
    return null;
}

我真的不知道为什么会这样,而前一个不行。