Можно ли настроить NSubstitute для выполнения любого переданного делегата

У меня есть следующий интерфейс

public interface IActionSecureExecuter
{
    void SecureExecuteOperation(Action action);

    T SecureExecuteOperation<T>(Func<T> action);
}

Теперь я хочу издеваться над реализацией, чтобы она выполняла делегаты, которые она получает в качестве аргументов. Это было довольно просто с первым методом:

m_Executer.SecureExecuteOperation(Arg.Invoke());

Но у меня проблемы с общей реализацией второго. Можно ли что-то сделать с этим Func или мне придется делать настройку для каждого T? Я боюсь, что это невозможно в соответствии с этим вопросом, но я не уверен на 100%. Вот что я сделал сейчас:

private void SetupInvokeAction<T>()
{
    m_Executer.SecureExecuteOperation(Arg.InvokeDelegate<Func<T>>());
}

Я вызываю эту функцию в каждом тестовом методе. Но я бы очень хотел поместить это в установку.


person Ilya Chernomordik    schedule 13.05.2014    source источник
comment
Что должен делать последний метод, вызывать делегата Func<T> и возвращать результат?   -  person Groo    schedule 13.05.2014
comment
На самом деле это идеальный результат (для макета). Я не уверен, как настроить его в NSubstitue, поэтому я хотел проверить, вызывается ли он хотя бы.   -  person Ilya Chernomordik    schedule 13.05.2014
comment
В настоящее время это невозможно с NSub, извините. Каждый универсальный экземпляр необходимо настраивать отдельно.   -  person David Tchepak    schedule 14.05.2014
comment
Я поднял вопрос на основе вашего github.com/nsubstitute/NSubstitute/issues/152. Не стесняйтесь делиться своими мыслями там.   -  person Alexandr Nikitin    schedule 16.05.2014