在Moq的同一成员设置上同时使用When和Protected方法

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

是否可以将Mock.ProtectedMock.When一起用于单个成员设置,除了将When条件移到设置回调或在Setup块中调用常规if之外

我想做这样的事情:

mock.When(x => condition).Protected().Setup<int>("member").Returns(0);
c# unit-testing moq
1个回答
0
投票

[When(x => condition)不熟悉。

何时定义为

public ISetupConditionResult<T> When(Func<bool> condition)`  

Version = 4.13.1.0

为什么不只使用正常条件然后再执行受保护的设置

if(condition) {
    mock.Protected().Setup<int>("member").Returns(0);
}

[ISetupConditionResult<T>不允许使用Proteced<T>扩展方法

public static IProtectedMock<T> Protected<T>(this Mock<T> mock) where T : class;

因为它需要Mock<T>作为目标。

© www.soinside.com 2019 - 2024. All rights reserved.