public void ThenMyScoreShouldBe(int expected) { var analyzer = new ResumeAnalyzer(); var container = BuildContainer(); var result = analyzer.Analyze(_resume, container); result.Score.ShouldBe(expected); }
protected AnalysisResult Analyze(ResumeInfo resume, IKeywordBonusProvider?bonusProvider = null, [CallerMemberName] string caller = "") { InitializeResultPublisherAsNeeded(); var legacyAnalyzer = new ResumeAnalyzer(); var newAnalyzer = new RewrittenAnalyzer(); bonusProvider ??= BuildBonusProvider(); IContainer container = BuildTestContainer(bonusProvider); try { return(Scientist.Science <AnalysisResult>(caller, experiment => { experiment.Use(() => legacyAnalyzer.Analyze(resume, container)); // experiment.Try(() => newAnalyzer.Analyze(resume, container)); experiment.Compare((x, y) => x.Score == y.Score); })); } catch (AggregateException agEx) // Scientist wraps exceptions into an aggregate { var opEx = agEx.InnerException; // Scientist wraps exceptions into an OperationException if (opEx?.InnerException != null) { throw opEx.InnerException; // This is the actual exception that we threw on comparing assertions } else if (opEx != null) { throw opEx; } else { throw; } } }