Skip to content

Instantly share code, notes, and snippets.

@IntegerMan
Created December 7, 2019 15:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save IntegerMan/474f68c57973b64d78dd640dfc4861fc to your computer and use it in GitHub Desktop.
Save IntegerMan/474f68c57973b64d78dd640dfc4861fc to your computer and use it in GitHub Desktop.
public MortgageResult ApplyForMortgage(MortgageApplication app) {
var oldProcessor = new LegacyProcessor(EmailFacade.Instance);
var newProcessor = new ExperimentalProcessor(new FakeEmailSender()); // or null potentially
return Scientist.Science<MortgageResult>(
"Side effects are bad",
experiment =>
{
experiment.Use(() => oldProcessor.Analyze(app));
experiment.Try(() => newProcessor.Analyze(app));
experiment.Compare((x, y) => x.Score == y.Score);
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment