茉莉花 - 如何检查参数是否存在?

时间:2013-02-14 10:55:05

标签: jasmine

美好的一天。

我正在测试看到功能得到了她所有的args。

我知道她的两个args必须有什么价值,

但是对于第三个arg,我只想测试它是否存在。

expect(myFunction).toHaveBeenCalledWithMatcher({
    a: 1,
    b: 2,
    c: dont know its val but want it to exist
});

提前致谢

2 个答案:

答案 0 :(得分:4)

尝试

  expect(myFunction.mostRecentCall.args[2]).toBeDefined();

并在toHaveBeenCalledWith测试中省略参数。

答案 1 :(得分:4)

您也可以使用jasmine.any。如果你期望一个数字,它可能是:

expect(myFunction).toHaveBeenCalledWith({
    a: 1,
    b: 2,
    c: jasmine.any(Number)
});

也可以jasmine.any(Function)等等。来自Jasmine doc:

  

jasmine.any将构造函数或“类”名称作为期望值。如果构造函数与实际值的构造函数匹配,则返回true。