断言是否使用所需参数调用 Func

Assert if Func is called with required parameters

 public class ClassUnderTest
    {
        void Process(Func<string, bool> doSomething)
        {
            //other code
            doSomething("123");
        }
    }

如何断言 doSomething 是使用参数 123 调用的?

您可以使用例如 Rhino Mocks:

someObject.AssertWasCalled(x => x.doSomething("123"));

检查这个:https://hibernatingrhinos.com/Oss/rhino-mocks/learn/Usage/assert-that-a-method-is-called-with-a-value-in-expected-state

就这么简单。只需创建一个执行断言的委托并将其传递给 Process 方法。

例如:

[Test]
public void SomeTestCase()
{
    ClassUnderTest sut = new ClassUnderTest();
    Func<string, bool> func = (param)=> 
    {
        Assert.That(param, Is.EqualTo("123"));
        return true;//or whatever
    };

    sut.Process(func);
}