示例#1
0
        public virtual void before_each()
        {
            autoSubstitute = new AutoSubstitute();

            var testBinaryNotifier = autoSubstitute.Resolve <ITestBinaryNotifier>();

            testDllPathStream = new Subject <IEnumerable <string> >();
            testBinaryNotifier.PathStream.Returns(testDllPathStream);

            containerFactory = autoSubstitute.Resolve <ITestContainerFactory>();

            containerDiscoverer = new NSpecTestContainerDiscoverer(testBinaryNotifier, containerFactory);
        }
        void Initialize(
            ITestBinaryNotifier testBinaryNotifier,
            ITestContainerFactory containerFactory)
        {
            this.containerFactory = containerFactory;

            testBinaryNotifier.PathStream.Subscribe(_ =>
            {
                RaiseTestContainersUpdated();
            })
            .DisposeWith(disposables);

            var noDllPaths = new string[0];

            var hotContainerStream = testBinaryNotifier.PathStream
                                     .StartWith(noDllPaths)
                                     .Select(MapToContainers)
                                     .Replay(1); // "remember" last observation when TestContainers is requested for the first time

            hotContainerStream.Connect().DisposeWith(disposables);

            containerStream = hotContainerStream;
        }
 // Unit tests need a constructor with injected dependencies
 public NSpecTestContainerDiscoverer(
     ITestBinaryNotifier testBinaryNotifier,
     ITestContainerFactory containerFactory)
 {
     Initialize(testBinaryNotifier, containerFactory);
 }