Comment

Comment by paranoidrobot

Perhaps I misunderstand you.

Say I'm writing tests for lets say ShoppingCart.

ShoppingCart depends on an implementation of ICartDiscountCalculator (CartDiscountCalculator)

CartDiscountCalculator depends on a number of implementations of ICartDiscountStrategy (ChristmasCartDiscountStrategy, VIPCustomerDiscountStrategy, BulkPurchaseDiscountStrategy, etc)

Each of those, in turn has their own dependencies, perhaps webservice calls, db calls, accessing caches, etc.

The way I would test ShoppingCart would be to mock out ICartDiscountCalculator, and provide known responses.

Are you suggesting instead that you build up the dependency graph - i.e the actual implementation of the discount calculator, the strategies, etc - and only mock when it goes to external code (eg the DB calls)?

This would seem to make testing very very difficult - since each test needs to know implementation details of everything it depends on.

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton