Test Cheap, Code Simple
Are your tests and code usefully cheap, or uselessly expensive? Did it ever cross your mind unit testing is wasteful and should be less fuss, and more value? Are you facing resistance from developers, or worse, from management for unit testing? Are you savvy about various unit testing philosophies, but still finding it hard to make sense of, from time to time? More specifically, do you question the act of never-ending mocking? Or popular application architecture and wonder if there is a simpler alternative? Good, we want you!
There is no advanced unit testing or application architecture. All should be as simple as 1+1=2. OK, maybe not quite, but very, very close, closer than you would think.
Let's revisit them from ground up.
The principles can't be simpler:
* data-driven testing, solution design and architecture
* meaningful separations
We'll build an easy but "typical" application together in a few stages. For each stages, there are choices to be made on unit testing and code design. Gradually, patterns appear, ideas surface, and with luck, we will arrive at something very clear. It' too obvious, almost stupidly so!
* pragmatism in coding and unit testing
* clarified: what to test and what not to?
* assertion style - can we just have one?
* to mock or not to mock, is there really any question
* reconsider dependency injection and reduce waste
* rethink the layers in architecture and be fuss-free
Possibly a breakaway from existing practices, this workshop is fully hands-on, very stress-free, most certainly useful, and at times controversial.
Beware! Your unit testing or architectural bias or preferences might not be confirmed.
Through this workshop you will get a clear idea and high confidence on how simple you can make application architecture, and quite surely, unit testing.
* .NET Core - we'll be coding in C#. Don't worry, you'll manage even if this is not your daily language!
* An open mind
See you there!
Often considered an instigator of controversy, Hackle advocates programming as a thinking game; he strives for simplicity and elegance, and enjoys sharing his learnings in pragmatic, idiomatic and accessible ways.