Bounced after the second time the page stole my focus away from the text. I barely got past reading the title.
bounce free: https://archive.is/vbTK7
Indeed, there are a couple of annoying pop-ups - but the content was interesting IMNHO.
I agree that the tests the author replaced were highly brittle. And the author’s new architecture is much better. And the author’s new tests are much less brittle.
But I think the author can go even further with removing mocks - why do “command.ShouldEqual(AuctionCommand.Bid(3));” instead of just receiving that auction event in the XMPP server? Why do “sniper.StateShouldBe(SniperState.Bidding, 1, 3);” rather than query the WPF interface? That is, why have a programmatic interface for the auction sniper at all - why not use it only through its actual external interfaces, WPF and XMPP?
Faster test suites, and tests are easier to write overall. You still need end to end tests like you mention but they don’t have to cover every edge case of domain logic.