This year at OOPSLA, I'd like to organize a birds-of-a-feather
for people who've used, simplified, enhanced or ported the xUnit TestingFramework
Are you all interested?
really got the ball rolling by writing up JavaUnit
magazine. At last count there were over ten ports of KentBeck
's framework to languages as diverse as Perl, Java, C++, Visual Basic, and Objective-C.
Meeting at OOPSLA, we'd get a chance to compare notes, and talk about what works and what doesn't.
Please sign this page if you are interested. If you have evening preferences or discussion ideas, please add them.
Sounds more like a
One of my ancestors organized a wild bof centuries ago. Our family has been associated with bofs ever since. - mf :-)
was well attended. Here is a list of topics that we discussed along with some proto-solutions:
- what can you do when your fixtures get too large?
- dealing with slow setUp and tearDown
- Parameterize the fixture via arguments on construction or use state setters
- Large fixtures are also a good reason to refactor your tests
- Drifing dates in unit tests were mentioned. Solution was: wrap your system time call. Yet another example of how tests lead you to good decoupled code.
- for the determinedly non-deterministic
- Make a massive fixture whose state leaks across several tests (not ideal). Use something like TestSetup? in JUnit to achieve this.
- For databases, make a special tearDown that restores DB state to expected values.
- Buy a good in-memory database which supports SQL.
- Revisit your code. See if you can localize DB access. May be a problem in EJB-style apps.
- Testing from here
- Observers can be very useful.
- Inject variable wait times into repeated tests.
- subclass a simulator so that you can instrument timing dependent code from the inside.
- Someone mentioned a servlet based UI. You can run tests remotely. Said he was going to email it to KentBeck and ErichGamma.
We also spoke about all of the different flavors of TestingFramework
out there. There seems to be a port to every major OO language along with some interesting hybrids, like CppBridge