使用Junit测试具有数据库访问功能的多线程应用程序
使用Junit测试具有数据库访问功能的多线程应用程序
这个问题已经有答案:
这里有一个有趣的问题。
我有一个应用程序在tomcat下运行,可以访问servlet。底层实现使用ThreadPoolExecutor来细分任务,目前仅是电子邮件分发器。我一直在添加JUnit测试,慢慢地将由cobertura报告的代码覆盖率提高到一个几乎可接受的水平。
以下内容为关于JUnit测试的背景介绍:
- 在@BeforeClass中,我设置了在测试环境中有效的用于DB连接查找的上下文。
- 在Servlet测试中,我使用HttpUnit来获取一个InvocationContext,然后获取一个servlet实例。
- 接下来,我调用servlet中的主要方法,该方法执行所有工作,并最终调用线程管理器以进行适当的分发方法,并使用前面定义的线程池。
- 问题出现在生成的线程中。来自servlet的DB访问使用在@BeforeClass中设置的上下文完全正常。但是线程无法访问该上下文,并且无法获取DB连接信息,导致线程代码失败。
因此,总之,有人有想法如何测试要访问DB的Thread代码吗?或者即使是想要访问DB的多线程应用程序的全新单元测试方法。
可以提供到某个程度的其他细节。我希望我已经提供了足够的信息,不需要提供实际的代码。
admin 更改状态以发布 2023年5月23日