Hi JB,
-----Original Message----- From: J. B. Rainsberger [mailto:[EMAIL PROTECTED] Sent: 24 November 2003 00:00 To: Cactus Users List Subject: Re: Asking Questions
Owen Chau wrote:
Cactus supports "integration unit testing". Can you explain the nature of this "integration" you refer to.
Integration Tests exercise multiple objects together. Object Tests exercise a single object in isolation, usually by faking its collaborators.
> Also, how about the
advantages, if any, of integration unit testing, as opposed to testing the unit
in
isolation. Do we need any additional tool and/techniques to cover
the
other aspects of unit testing?
In theory, if you have 100% Object Test coverage /and/ perfect interface/implementation separation, then Integration Tests are unnecessary. Since no-one has 100% Object Test coverage /and/ perfect interface/implementation separation, Integration Tests are necessary
to
plug the holes.
I don't quite agree! :-) You're only talking about integration between components themselves. Where is the integration with the container/database/etc tested? All the meta-data files (config files, deployment descriptors, etc) do not get tested with object test coverage, right?
Well, I can check the deployment descriptors with XMLUnit. I don't test the container. I don't test the database.
I have a few classes that interact with the database, and for that I have a few Object Tests that use the database. Everything else uses those database-aware classes through an interface, so I can test business logic against either mocks or an in-memory "database".
I have a suite of Deployment Tests, if I need them, that help me deploy my application correctly: authentication settings, descriptors, and so on. Those are Object Tests, in a sense: they are isolated tests. (Pretend a file on the file system were an object.)
I think that about covers it. Of course, the End-to-End Tests verify that the whole application does something useful. Usually these are Customer Tests, but sometimes I write some if I'm worried about whether I understand what the web page flow needs to be. Usually I just model those things and test them in isolation.
--
J. B. Rainsberger,
Diaspar Software Services
http://www.diasparsoftware.com :: +1 416 791-8603
Let's write software that people understand
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
