The Right Way to do Test Cleanup

Tuesday, September 2, 2014

MSTest and NUnit, as most of the other common test frameworks, provide means for write cleanup code that is executed whether the test passed or failed. In addition they provide means to write cleanup code that runs after all tests in a class or assembly has completed. This is especially important in End-to-end or Integration Tests, in which the tests cannot be 100% isolated from one another. In MSTest this is done using the , and attributes. Of course there are also corresponding attributes, but this is out of the scope of our discussion. Look here for...

Online materials from my Expert Days sessions

Saturday, December 29, 2012

Thanks for those who participated in my sessions in Expert Days! I hope you enjoyed it. For your benefit and also for everyone else that didn’t participated, I uploaded all the materials online so you can browse whenever you want. You can find all the materials here. In the above link you’ll find the following files: For the “C# in Depth” session you’ll find: The presentation All the demos (except for the Roslyn project demo) The Roslyn project demo For the “Software Quality –...

Test driving interactions using Async and Await

Saturday, September 15, 2012

From time to time I encounter a problem that seems pretty straight-forward to implement without TDD, but very cumbersome to do with TDD. Most of these cases have something in common: they describe interactions between the tested component and external parties. These external parties can be either the user, external system, or any kind of communication protocol. Here’s the simplest example I could think of: This is a simple console application that asks the user for his name, and then greets him with “Hello, “, followed by his name. Writing this application takes exactly 3...

ATDD with MS-Test or NUnit

Tuesday, May 29, 2012

Normally ATDD and BDD are associated with special tools that allow non-developers like business people and testers write or at least read tests, without having to write code. Examples of such tools are FitNesse, M-Spec, SpecFlow, Cucumber and more. However, even though these tools allow to specify tests scripts without code, often for business analysts these tools are too technical, or they just don’t have the mindset to specify tests in a well-structured “Given-When-Then” format. About two years ago, the core group in Retalix tried to adopt ATDD using FitNesse, where the BA’s (Business Analysts)...

TDD and the SOLID principles (Part 1 – introduction)

Friday, August 26, 2011

Table of contents: Part1 – Indrocution (this post) Part 2 – SRP Part 3 – OCP Part 4 – LSP Part 5 – ISP Part 6 – DIP Part 7 – Conclusion   Mastering TDD is a process that takes time. There are many pitfalls that “newbie’s” fall into. IMHO the following 2 reasons are the main ones: Thinking about the implementation before writing a test. That is, writing tests that are coupled with the implementation instead of with the problem...