通缉但没有援引:Mockito测试

时间:2016-03-18 11:38:05

标签: unit-testing exception testing mockito invokerequired

我有问题。 我不明白为什么mockito会例外。 RecordWriter将Record写入文件。我想验证它是否写入。 我实现了另一个函数,我试图模拟(OutputStream.class),但结果是一样的。我目前的测试是:

var $win = $(window);
var $container = $('.PortfolioItemContainer'),
$containerProxy = $container.clone().empty().css({ visibility: 'hidden' });
var $items = $('.PortfolioItemContainer .bgCover');

$items.lazyload({
    effect: "fadeIn",
    effectspeed: 1500,
    failure_limit: Math.max($items.length - 1, 0)
});

var grid = $('.PortfolioItemContainer').isotope({
    resizable: false,
    filter: '.all',
    masonry: { columnWidth: Math.floor( $('.PortfolioItemContainer').width() / 4)},
    onLayout: function() {
        $win.trigger("scroll");
    }
});

例外情况是:

    try (RecordWriter writer = new RecordWriter(serverAlias))
            {
            RecordWriter wr = mock(RecordWriter.class);
            writer.writeRecordToFile(httpRecord.printRecord().getBytes(CHARSET_UTF8));
            verify(wr,times(1)).writeRecordToFile(httpRecord.printRecord().getBytes(CHARSET_UTF8));

            }

感谢所有人。

1 个答案:

答案 0 :(得分:1)

您没有在模拟上调用writeRecordToFile方法。

你有:

1)一个真实的实例 - RecordWriter writer = new RecordWriter(serverAlias)

2)模拟 - RecordWriter wr = mock(RecordWriter.class);

然后在真实实例(writer)上调用该方法,并尝试验证mock(wr)是否与之交互。

将方法调用更改为:wr.writeRecordToFile(httpRecord.printRecord().getBytes(CHARSET_UTF8));

它应该有效。如果你问我,这似乎是一个毫无意义的考验。