【问题标题】:Jasmine React Spy not being called?Jasmine React Spy 没有被调用?
【发布时间】:2015-12-04 05:30:14
【问题描述】:

我是 React 茉莉花测试的新手,这让我发疯。

我正在尝试测试一个简单的按钮单击下面。但是间谍不起作用。

    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();
});

我收到错误 Expected spy unknown to have been called。有任何想法吗?我曾尝试使用 .and.callThrough() 但这也不起作用。

【问题讨论】:

    标签: reactjs jasmine


    【解决方案1】:

    Spy 通常放在方法调用上。被监视的方法中的任何类型的方法调用都将不会由 Jasmine 执行,除非您像您所做的那样附加 and.callThrough。但是,您将间谍附加到变量而不是 React 库中的方法,这似乎是您想要做的。

    如果我是对的,我想你会想这样设置你的间谍;

    spyOn(React, 'createElement');
    expect(React.createElement).toHaveBeenCalled();
    

    对于更健壮的测试,您可能希望使用您希望调用它的 jasmine toHaveBeenCalledWith("passing in parameters")。

    【讨论】:

      猜你喜欢
      • 2016-09-09
      • 1970-01-01
      • 2016-12-23
      • 1970-01-01
      • 2021-04-02
      • 1970-01-01
      • 1970-01-01
      • 2016-03-31
      • 2021-02-12
      相关资源
      最近更新 更多