package org.test4j.testng.spring.strategy.register; import org.test4j.fortest.service.UserAnotherDao; import org.test4j.fortest.service.UserService; import org.test4j.module.database.IDatabase; import org.test4j.module.spring.ISpring; import org.test4j.module.spring.annotations.AutoBeanInject; import org.test4j.module.spring.annotations.AutoBeanInject.BeanMap; import org.test4j.module.spring.annotations.SpringBeanByName; import org.test4j.module.spring.annotations.SpringContext; import org.test4j.testng.Test4J; import org.testng.annotations.Test; @SpringContext({ "org/test4j/module/spring/testedbeans/xml/data-source.xml" }) @AutoBeanInject(maps = { @BeanMap(intf = "**.*Service", impl = "**.*ServiceImpl"), @BeanMap(intf = "**.*Dao", impl = "**.*DaoImpl") }) @Test(groups = "test4j") public class RegisterDynamicBeanTest extends Test4J implements IDatabase, ISpring { @SpringBeanByName protected UserService userService; @SpringBeanByName protected UserAnotherDao userAnotherDao; public void getSpringBean() { want.object(userService).notNull(); Object o = spring.getBean("userAnotherDao"); want.object(o).same(userAnotherDao); Object userDao = spring.getBean("userDao"); want.object(userDao).notNull(); } /** * 测试深度嵌套的setProperty() 时,bean的自动注入 */ public void callCascadedDao() { this.userAnotherDao.callCascadedDao(); } /** * 测试自动注入spring bean的时候调用spring init method */ public void testSpringInitMethod() { int springinit = (Integer) reflector.getField(userAnotherDao, "springinit"); want.number(springinit).isEqualTo(100); } }