C# 使用Moq模拟Func<;T>;当多次调用时,其行为会有所不同

C# 使用Moq模拟Func<;T>;当多次调用时,其行为会有所不同,c#,unit-testing,moq,C#,Unit Testing,Moq,如何模拟C#Func,使其在多次调用时返回不同的值或异常 Mock<Func<bool>> mock = new Mock<Func<bool>>(); mock.SetupSequence(m => m.Invoke()) .Throws<Exception>() .Returns(true); 我看到了另一个关于使用SetupSet,但是,我需要一个序列。关于@henrikmerlander的另一个答案的提示

如何模拟C#Func,使其在多次调用时返回不同的值或异常

Mock<Func<bool>> mock = new Mock<Func<bool>>();
mock.SetupSequence(m => m.Invoke())
    .Throws<Exception>()
    .Returns(true);

我看到了另一个关于使用
SetupSet
,但是,我需要一个序列。

关于@henrikmerlander的另一个答案的提示,解决方案是不使用
.Invoke
方法

Mock<Func<bool>> mock = new Mock<Func<bool>>();
    mock.SetupSequence(m => m())
        .Throws<Exception>()
        .Returns(true);
Mock Mock=new Mock();
SetupSequence(m=>m())

.返回(真);

根据@henrikmerlander的另一个答案提示,解决方案是不使用
.Invoke
方法

Mock<Func<bool>> mock = new Mock<Func<bool>>();
    mock.SetupSequence(m => m())
        .Throws<Exception>()
        .Returns(true);
Mock Mock=new Mock();
SetupSequence(m=>m())

.返回(真);

我认为你的答案在这里:我认为你的答案在这里: