请教单元测试的问题

在一般的环境下,编写单元测试的代码是很方便的。

但是,如果对于向servlet这样需要容器支持才能运行的代码,该如何进行单元测试呢?

有一种办法是将servlet中所有的业务逻辑写到一个单独的类中,这样就可以对这个类进行单元测试,但是总是感觉有很大的限制。

还有没有更好的办法啊?

“将servlet中所有的业务逻辑写到一个单独的类”
是已经形成了模式,没有人会将业务逻辑直接写在Servlet中。

因为你错误的编程模式,导致无法方便地测试你的业务逻辑。

的确不应该把业务逻辑直接放到servlet中来完成

但是,即使是将业务逻辑的代码放到专门实现业务逻辑的类中处理,往往它也需要使用由servlet传入的request或reponse。比如struts中的Action类(按照通常的说法,Action中应该是业务逻辑处理的抽象)也需要由ActionServlet传入的request和reponse。这样的话,如何对Action进行测试?

理想的情况应该是处理业务逻辑的类中不包含任何与servlet相关的内容,这样才能较好的进行测试。但是不知道这样可不可行?

有没有其他的办法?如果不用cactus这样的测试框架的话?

httpunit和junit工具结合使用,是否能满足你的需求??确实,不因该将业务逻辑写道servlet中。