如何解决使用包含字符串的参数断言
我正在使用 MSTest
和 Moq
编写单元测试。我想测试一个方法是否使用包含子字符串的字符串参数调用。
_mockMessageService.Verify(x => x.ShowMessage(It.IsAny<string>()),Times.Once());
在上面的代码中,我可以验证 ShowMessage
方法是否使用某个字符串参数调用过一次,但我想确保该字符串包含诸如 success
、fail
、{{1 }} 等我不能直接传递整个字符串,因为它是不一致的,只有一部分是一致的。可能吗?
解决方法
It.Is<>()
允许使用谓词来验证参数
_mockMessageService.Verify(x => x.ShowMessage(It.Is<string>(s =>
s.Containes("success",StringComparison.InvariantCultureIgnoreCase) ||
s.Containes("fail",StringComparison.InvariantCultureIgnoreCase) ||
s.Containes("partially success",StringComparison.InvariantCultureIgnoreCase)
)),Times.Once());
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。