seam的集成测试有做过的吗?我这里总是不能得到注入的组件
tianyun
2008-11-26
环境:eclipse3.4+TestNG 插件+Seam2.1+Wicket1.3 +Tomcat6.0
比较痛苦的就是集成测试了,参照手册31章的例子,以及国外网站的帖子,配置好persistence.xml和components.xml,这时应用程序可以在tomcat中运行。但一运行集成测试就报错,经检查发现取得的组件内的其他组件全都是空的,没有初始化。下面是测试代码: /** * 登录管理测试用例 */ public class LoginServiceTest extends SeamTest { /** * 登录成功用例 */ @Test public void testLoginSuccess() throws Exception { new ComponentTest() { @Override protected void testComponents() throws Exception { UserService userservice = (UserService)getValue("#{userService}"); User user1 = userservice.getUser("402881af1dd2c0d4011dd2c2373b0002"); assert "mans".equals(user1.getUsername()); } }.run(); }
UserService 的代码如下: @Name("userService") @AutoCreate @Scope(ScopeType.STATELESS) public class UserService { @In SystLogService log; @In(value = "loginInfo") public LoginInfo loginInfo; @In(value="userDao") private HibernateEntityDao<User> userDAO; @In(value="userJobDao") private HibernateEntityDao<UserJob> userJobDao; /** * 根据ID获取 * * @param userId * @return 返回指定的职员 */ public User getUser(String userId) { User user = (User)userDAO.findUnique("username", userId); if(user == null) { throw new LogicException("CGIP_COMM_001"); } return user; } } 其中在运行TestNG后,跟踪测试用例,发现可以得到userService并且不为null,只是userService中的logInfo,userDAO等都是null,这样一来就没办法执行下去了。为此查了好多资料,看了很多例子,大多数也是这么写的,但为什么出现这种情况呢?如果哪位兄弟遇到过类似的情况,请告知一二,谢谢关注。
|
|
风之狐
2008-12-09
呵呵,我也碰到同样的问题,请问有人解决了么
|