4

MOQ 是 .Net 中使用的模拟框架。它有一个名为 It.IsAny 的方法。当您想说应该使用特定类型的项目调用方法时使用它。例如,你可能会说:

someObject.SomeMethod(It.IsAny<int>());

如果你用 1、2、3 或 400000 调用 SomeMethod 也没关系,只要它是一个 int。这不同于说您希望将特定值作为参数发送。例如:

someObject.SomeMethod(2);

茉莉花有类似的吗?我想说

expect(someObject.someMethod).toHaveBeenCalledWith(It.IsAny<string>());

这可能吗?

4

2 回答 2

5

尝试

jasmine.any(String)

此备忘单中有更多示例。

于 2013-10-29T10:36:35.473 回答
1

正如另一个答案所涵盖的,jasmine.any(String)允许您断言参数是某种类型。在jasmine.anything()某些情况下,您只想断言传入nullundefined传入的其他内容。这两种方法都包含在 jasmine 文档中。

断言 称呼 结果
茉莉花.any(字符串) someObject.SomeMethod('测试字符串') 经过
茉莉花.any(字符串) someObject.SomeMethod(5) 失败
茉莉花.any(字符串) someObject.SomeMethod(null) 失败
茉莉花.any(字符串) someObject.SomeMethod(未定义) 失败
茉莉花.anything() someObject.SomeMethod('测试字符串') 经过
茉莉花.anything() someObject.SomeMethod(5) 经过
茉莉花.anything() someObject.SomeMethod(null) 失败
茉莉花.anything() someObject.SomeMethod(未定义) 失败
于 2020-12-10T12:12:46.703 回答