我可以将自定义匹配器与 toHaveBeenCalledWith 一起使用吗?
Can I use custom matcher with toHaveBeenCalledWith?
我需要检查传递给方法的 URL。我为此编写了一个自定义匹配器,但我不知道如何在 toHaveBeenCalledWith
.
中使用它
在这种情况下如何使用我的自定义匹配器?
例如在 C# Moq 中,我可以执行以下操作以仅匹配偶数:
mock.Setup(foo => foo.Add(It.Is<int>(i => i % 2 == 0))).Returns(true);
可能不像您要找的那样优雅,但您应该能够将自定义匹配器应用于 yourMockFunction.mock.calls[0][0]
。
expect(customMatcher(mockFunction.mock.calls[0][0])).toEqual(true)
如果有多个参数,您可以阅读mockFunction.mock.calls[0]
中的下一个元素。如果要检查多个调用,它们将在 mockFunction.mock.calls[1]
、mockFunction.mock.calls[2]
等中可用。
我需要检查传递给方法的 URL。我为此编写了一个自定义匹配器,但我不知道如何在 toHaveBeenCalledWith
.
在这种情况下如何使用我的自定义匹配器?
例如在 C# Moq 中,我可以执行以下操作以仅匹配偶数:
mock.Setup(foo => foo.Add(It.Is<int>(i => i % 2 == 0))).Returns(true);
可能不像您要找的那样优雅,但您应该能够将自定义匹配器应用于 yourMockFunction.mock.calls[0][0]
。
expect(customMatcher(mockFunction.mock.calls[0][0])).toEqual(true)
如果有多个参数,您可以阅读mockFunction.mock.calls[0]
中的下一个元素。如果要检查多个调用,它们将在 mockFunction.mock.calls[1]
、mockFunction.mock.calls[2]
等中可用。