是否有更简洁的方法在 C# 单元测试中存根值?

问题描述 投票:0回答:1

来自 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# 中缺少更好/更简洁的方法吗?

c# mocking nunit
1个回答
0
投票

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");
© www.soinside.com 2019 - 2024. All rights reserved.