gpt4 book ai didi

c# - 使用 Moq 查看是否使用值调用了方法

转载 作者:行者123 更新时间:2023-11-30 19:36:50 25 4
gpt4 key购买 nike

使用 Microsoft Visual Studio 2017 的内置测试和 Moq。

我有一个创建一些内容的简单类,然后将内容发送到通知系统。我需要测试是否调用了通知系统,但调用中包含一些文本。

 public void DoStuff()
var tenantSettings = _tenantService.GetTenantSettings();
tenantSettings.Body = "xxx SOME VALUE xxx";
MyService.SendMail(tenantSettings.Body);

我如何测试 SendMail 是否包含文本“SOME VALUE”?

我有一个 MOCK 设置:

 MyServiceMock.Setup(x=>x.SendMail(It.IsAny<string>);

最佳答案

您可以简单地在您的 mock 上使用 Verify 方法:

MyServiceMock.Verify(x => x.SendMail("SOME VALUE"), Times.Once());

编辑:

如果要验证作为参数传递的文本是否不完全匹配,而只是包含测试值,可以使用,as Scott Chamberlain写道:

MyServiceMock.Verify(x => x.SendMail(It.Is<string>(s => s.Contains("SOME VALUE")), Times.Once());

关于c# - 使用 Moq 查看是否使用值调用了方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41964511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com