来自 Kotlin/Groovy/Spock 背景,我发现为特定参数存根值非常简单:
something.someMethod(1) >> "Stubbed Return Value"
进入 C# / Moq 世界并需要经常执行此操作进行测试,我似乎陷入了相对冗长的代码,例如:
somethingMock.Setup(x => x.SomeMethod(It.Is<int>(x => x == 1))).Returns("Stubbed Return value");
这相当笨拙。
我在 C# 中缺少更好/更简洁的方法吗?
It.Is<int>(x => x == 1)
可以写成 1
。当您想要执行表达式时,It.Is
很有用,但对于文字值则不需要它。开始与引用类型而不是值类型进行比较时要小心。
可以使用
It.Is
的示例。
somethingMock
.Setup(x => x.SomeMethod(It.Is<Person>(x => x.Id == 1)))
.Returns("Stubbed Return value");