c# - 使用 Moq.It.IsAny 测试以某物开头的字符串

标签 c# .net unit-testing moq

是否可以使用 Moq 来表示一个方法接受以“ABC”开头的字符串。

举个例子:

logger.Verify(x => x.WriteData(Moq.It.IsAny<string>().StartsWith("ABC")), Times.Exactly(3));

那不会编译,但希望它能说明我的观点

最佳答案

尝试:

logger.Verify(x => x.WriteData(Moq.It.Is<string>(str => str.StartsWith("ABC"))), Times.Exactly(3));

你可以看到 It.Is 的另一个例子:

// matching Func<int>, lazy evaluated
mock.Setup(foo => foo.Add(It.Is<int>(i => i % 2 == 0))).Returns(true); 

来自 Moq 文档:https://github.com/Moq/moq4/wiki/Quickstart

关于c# - 使用 Moq.It.IsAny 测试以某物开头的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10781965/

相关文章:

c# - 列出所有使用目录服务的本地用户

java - Spring @Autowired 字段 - 哪个访问修饰符,私有(private)或包私有(private)?

c++ - 验证并验证 NoMoreInteractions 到 gtest

c# - 如何在 C# 中将字符串 xml 转换为 json 并在 C# 中通过 SOAP 发送

c# - 带有长非 ASCII 名称的电子邮件附件

c# - 如何使用 async 和 wait 发布 Web api 调用

C# EF Core 使用表达式树构建动态选择语句

c# - 将 varbinary 从 sql 加载或转换为文本框文本?

c# - 更改背景切换按钮

javascript - Foundation-Apps angular 站点与 karma-jasmine 单元测试的集成