我是茉莉花新手测试的新手,这让我发疯。
我正在尝试测试下面的简单按钮。但是间谍没有用。
it('fires the clearTags handler', function() {
var handler = jasmine.createSpy();
var element = ReactTest.renderIntoDocument(
React.createElement(SomeComponent));
spyOn(element,'clearTags')
var clearTagsLink = ReactTest.findRenderedDOMComponentWithClass(element, 'clear-tags-link');
ReactTest.Simulate.click(clearTagsLink);
expect(handler).toHaveBeenCalled();
});
我收到错误预期间谍未知被调用。有任何想法吗?我尝试过使用.and.callThrough(),但这也不起作用。
答案 0 :(得分:1)
间谍通常被置于方法调用上。在被监视的方法中进行任何类型的方法调用,除非你像你一样附加and.callThrough,否则Jasmine将执行不。但是,您将间谍附加到变量而不是React库中的方法,而您似乎想要这样做。
如果我纠正了,我会认为你会想要设置你的间谍;
spyOn(React, 'createElement');
expect(React.createElement).toHaveBeenCalled();
对于更强大的测试,您可能希望使用jasmine toHaveBeenCalledWith("传入参数")您希望它被调用。