我有以下界面
public interface IActionSecureExecuter
{
void SecureExecuteOperation(Action action);
T SecureExecuteOperation<T>(Func<T> action);
}
现在我想模拟实现,以便它确实执行它作为参数获取的委托。使用第一种方法非常简单:
m_Executer.SecureExecuteOperation(Arg.Invoke());
但是我对第二个的通用实现有麻烦。是否可以使用该Func执行某些操作,或者我必须为每个T进行设置?我担心根据question这是不可能的,但我不是百分百肯定的。这就是我现在所做的:
private void SetupInvokeAction<T>()
{
m_Executer.SecureExecuteOperation(Arg.InvokeDelegate<Func<T>>());
}
我在每个测试方法中调用此函数。但我真的想把它放在设置中。