public virtual void before_each() { autoSubstitute = new AutoSubstitute(); testCases = new List <TestCase>(); discoverySink = autoSubstitute.Resolve <ITestCaseDiscoverySink>(); discoverySink.When(sink => sink.SendTestCase(Arg.Any <TestCase>())).Do(callInfo => { var discoveredTestCase = callInfo.Arg <TestCase>(); testCases.Add(discoveredTestCase); }); binaryTestDiscoverer = autoSubstitute.Resolve <IBinaryTestDiscoverer>(); binaryTestDiscoverer.Discover(null, null, null).ReturnsForAnyArgs(callInfo => { string binaryPath = callInfo.Arg <string>(); if (sources.Contains(binaryPath)) { return(discoveredExamplesBySource[binaryPath]); } else { return(new DiscoveredExample[0]); } }); var testCaseMapper = autoSubstitute.Resolve <ITestCaseMapper>(); testCaseMapper.FromDiscoveredExample(null).ReturnsForAnyArgs(callInfo => { var discoveredExample = callInfo.Arg <DiscoveredExample>(); var testCase = new TestCase(discoveredExample.FullName, Constants.ExecutorUri, discoveredExample.SourceFilePath); return(testCase); }); var settingsRepository = autoSubstitute.Resolve <ISettingsRepository>(); var messageLogger = autoSubstitute.Resolve <IMessageLogger>(); outputLogger = autoSubstitute.Resolve <IOutputLogger>(); var loggerFactory = autoSubstitute.Resolve <ILoggerFactory>(); loggerFactory.CreateOutput(messageLogger, Arg.Any <IAdapterSettings>()).Returns(outputLogger); discoverer = new MultiSourceTestDiscoverer(sources, binaryTestDiscoverer, testCaseMapper, settingsRepository, loggerFactory); discoverer.DiscoverTests(discoverySink, messageLogger, autoSubstitute.Resolve <IDiscoveryContext>()); }