AutoSubstitute Provide () - контейнер Autofac - PullRequest
0 голосов
/ 15 марта 2019

Используя AutoSubstitute из библиотеки AutofacContrib.NSubstitute, я хочу передать экземпляр контейнера в AutoSubstitute классу, который разрешается AutoSubstitute.Хотя IContainer устанавливается с помощью метода AutoSubstitute.Provide(), он не передается в SomeAppClass, который ожидает экземпляр IContainer через конструктор.

using System;
using Autofac;
using AutofacContrib.NSubstitute;

namespace NSubstituteTest
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var autoSubstitute = new AutoSubstitute();

            autoSubstitute.Provide<IContainer>(autoSubstitute.Container);

            autoSubstitute.Resolve<SomeAppClass>();

            Console.Read();
        }
    }

    public class SomeAppClass
    {
        private readonly IContainer _container;
        private readonly ITestClass _testClass;

        // The IContainer instance should be the autoSubstitute.Container set on line 13 using the Provide() method
        public SomeAppClass(IContainer container)
        {
            _container = container;

            // Error thrown when trying to retrieve an automocked instance for ITestClass
            _testClass = _container.Resolve<ITestClass>();
        }
    }

    public interface ITestClass
    {
        void TestMethod();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...