【问题标题】:jasmine toHaveBeenCalledWith partial matchingjasmine toHaveBeenCalledWith 部分匹配
【发布时间】:2014-02-01 18:35:02
【问题描述】:

有了 Jasmine,我可以窥探方法并找出论据。我希望能够拨打toHaveBeenCalledWith(something, anything)

假设我想监视一个方法.on(event, callback)。我只关心event 是否被监听,而不是实际的回调标识是什么。是否可以在不编写自定义匹配器的情况下做到这一点?我没有看到。

【问题讨论】:

标签: javascript unit-testing jasmine


【解决方案1】:

试试

toHaveBeenCalledWith(jasmine.any(Object), jasmine.any(Function))

【讨论】:

  • 如果类型无关紧要,也可以更少关心并使用jasmine.anything()
【解决方案2】:

茉莉花2:

 expect(callback).toHaveBeenCalledWith(jasmine.objectContaining({
    bar: "baz"
  }));

https://jasmine.github.io/2.0/introduction.html

【讨论】:

    【解决方案3】:

    如果您想测试特定的东西,您可以执行以下操作:

    expect(mockSomething.someMethod.mostRecentCall.args[0].pool.maxSockets).toEqual(50);
    

    Jasmine 2 中的语法现在是:

    mockSomething.someMethod.calls.mostRecent().args[0]
    

    【讨论】:

    • 对额外的可选参数很有用。注意 Jasmine 2 中的语法现在是 mockSomething.someMethod.calls.mostRecent().args[0]
    猜你喜欢
    • 2018-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 2017-01-09
    • 1970-01-01
    相关资源
    最近更新 更多