我使用struts2-junit-plugin为struts2 web应用程序编写测试用例我的问题是在我的操作类中有一些数据库相关的查询使用数据源(jndi) 我怎样才能在我的测试用例中模拟这个。
修改
在此测试中,我正在设置远程用户。
public void testexecute()
{
try
{
ActionProxy proxy = getActionProxy("/index");
IndexAction action = (IndexAction) proxy.getAction();
request.setRemoteUser("Haider");
assertTrue(action.execute().equals(ActionSupport.SUCCESS));
assertTrue(true);
}
catch(Exception ex)
{
assertTrue(false);
}
}
并且在IndexAction(实现PrincipalAware)中我有这个
public String execute()
{
try
{
if(principleProxy != null)
{
userModel = new UserModel();
userModel.setUserName(principleProxy.getRemoteUser());
}
else
{
return ERROR;
}
................................
.................................
}
索引中的当我运行测试时,prototypeProxy为null。
答案 0 :(得分:1)
您可以查看使用Dbunit
DbUnit是针对的JUnit扩展(也可用于Ant) 数据库驱动的项目,其中包括放置数据库 在测试运行之间进入已知状态。这是一个很好的方式 避免在一个测试用例时可能出现的无数问题 破坏数据库并导致后续测试失败或 加剧了伤害。
DbUnit能够将数据库数据导出和导入到 来自XML数据集。从版本2.0开始,DbUnit也可以使用 在流模式下使用大型数据集。 DbUnit也可以帮到你 验证您的数据库数据是否与预期的值集匹配。