testability

Asp.net MVC View Testing?

With more and more code pushed to the Views in Asp.Net MVC (i.e. AJAX, JQuery, etc...), how do you maintain the 'testability'? How do you test your Views? How do you test your views with client-side jscript code? How do you test your Views with Async behavior? It seems that most examples on the testability of MVC deal with controller...

Java: How to test methods that call System.exit()?

I've got a few methods that should call System.exit() on certain inputs. Unfortunately, testing these cases causes JUnit to terminate! Putting the method calls in a new Thread doesn't seem to help, since System.exit() terminates the JVM, not just the current thread. Are there any common patterns for dealing with this? For example, can I ...

What's the right way, for testability, to add functionality to a ComboBox?

The desired functionality of the 'enhanced' combo box is a quick find method. Each item in the combobox has a ToString() method, such that they can be displayed in the drop down list. On clicking an item in the drop down list, the combobox's observers are notified of the selection. Also, every time the typed text in the combobox changes...

inheritance vs. composition for testability

While designing my objects I find composition to be a better choice from the perspective of testability. The reason being, I can mock parts of the composition structure if I need to, while running unit tests. This is not possible if I have an inheritance hierarchy. I would like to know if others have also found this to be a reason to p...

Should static classes be avoided because it makes Dependency Injection Difficult?

Somebody tasked with creating a "Core" set of libraries created a set of static classes providing all sorts of utilities from logging, auditing and common database access methods. I personally think this stinks because we now have a Core set of libraries that are hard to test because I can't mock / stub these classes or do any injection...

Do Extension Methods Hide Dependencies?

All, Wanted to get a few thoughts on this. Lately I am becoming more and more of a subscriber of "purist" DI/IOC principles when designing/developing. Part of this (a big part) involves making sure there is little coupling between my classes, and that their dependencies are resolved via the constructor (there are certainly other ways o...

Is it ok to use #if debug directive in C#?

We have a class a class that looks something like the following: public class Processor { //set timeout in seconds private const int TIMEOUT = 600; public void Process() { //DO SOMETHING HERE //CHECK TO SEE IF TIMEOUT HAS BEEN HIT } } Essentially, we'd like to write a unit test to see if a timeout...

Creating testable code

I have a file - in a large legacy codebase - containing methods that access databases. No classes are used, just a header file with the method declarations, and the source file with the implementation. I want to override these methods to eliminate the DB access during unit testing. I thought of the following options: Make file into c...

Patterns for making c++ code easy to test

Should you design your code to make testing easier? And if so how to design c++ code so that it is easy to test. How do you apply dependency-injection in c++? Should I implement the classes using a pure interface class as the base in order to simplify the creation of fake test objects? That would force me into making a lot of virtual...

Constructor Injection, design for testability

I have this code (you probably can ignore that it is Swing code), but I usually end up with too many arguments in my constructor. Should I use model bean class and then pass that object in the constructor? public BrowserFrame(final JTextField url, final JTextArea response, final JTextField command, final JButton actionButton) { th...

Testable Java Code: using model beans with a constructor

According to Misko Hevery that has a testability blog. Developers should avoid 'holder', 'context', and 'kitchen sink' objects (these take all sorts of other objects and are a grab bag of collaborators). Pass in the specific object you need as a parameter, instead of a holder of that object. In the example blow, is this code smell? Sh...

Testable design

I have a java class which has a static member created using Facade (Singleton). Class A implements InterfaceA { private static DataStore db = DataStoreFacade.getInstance("BDB"); //singleton instance public void save(final String key, final String val) { db.save(key,val); } }; Here Class A is used as a member variable for ...

On the search for my next great .Net Read

Just got done with "The art of unit testing". It was a great read and i think everyone should go buy a copy. With that said i think the next book I'm like to read would be a architecture / Design type book that would focus heavily on building your objects / software in such a way that it would be: Low Coupling High Cohesion Easily Ma...

It is possible/productive enough to TDD in C++ projects?

Hello guys, I want to know if anyone of you guys use TDD in your c++ projects and how it performs compared to managed languages like C# and Java. And what frameworks you guys are using to automate tests on c++ projects? ...