Tuesday, February 27, 2007

Unit Testing Web apps

NUnitASP - http://nunitasp.sourceforge.net/
Pros: C# class library for downloading and parsing web pages. Very CSharpy.
Cons: Nothing has happened with this since November 2004. Have to extend it constantly for more complex controls. Thinks about things in a Control way.


SAMIE -
http://samie.sourceforge.net/
Pros: Uses Perl to drive IE around using it's OLE automation interface. Keeps logs, can fill with data from databases, and there's a
cheesy but functional WinForms app to help write the scripting language.
Cons: Uses Perl. LOL.


HttpUnit -
http://httpunit.sourceforge.net/
Pros: Feels good to the Java folks, integrates with JUnit, lower level focused.
Cons: May not be actively developed, no activity since October 2004.


IEUnit -
http://ieunit.sourceforge.net/
Pros: Almost zero installation footprint. Javascript based engine uses the language we were all born knowing. Rich debugging because you can use the Windows Script Debugger. Fairly simple in design. Actively developed. Nice WinForms script helper. Good if you already dig the DOM.
Cons: Slightly cheesy handling of model dialogs. Steals focus while running tests.


Selenium -
http://selenium.thoughtworks.com/
Pros: Good for testing cross browser compatibility. Actively worked on. Selenium tests can be expanded to use other languages.
Cons: Uses a
Fit-like HTML as it's source code. This takes a mind shift and freaks out some folks. Server-side component required.

Watir - http://wtr.rubyforge.org/
Watir (Pronounced "Water") Web Application Testing in Ruby - http://wtr.rubyforge.org/
Pros: Actively being worked on. Uses Ruby, the language du jour. Can run tests asychronously. Simple, elegant, fast. Ruby's interactive shell makes it easy to develop tests (more on this later in this post). Great support for client side things like script events, and even mouse rollovers.
Cons: Haven't found any yet, but I'm sure they are out there. Very focused on the DOM.