|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
net程序员的大部门代码都靠控件拖拽完成的,虽然java也有,但是无论从美观和速度上都没发和.net比。java程序员都是代码完成的,所以java程序员常戏称.net程序员是操作员,呵呵。磨蹭了好久,终究入手下手用UnitTest。缘故原由一和人人一样,不想早晨做恶梦,缘故原由二是在Spring下对营业层TDD,可以不必要Tomcat,完整挣脱对显现层开辟进度的依附,而专注疾速的开辟营业层。
可是我们也只在营业层利用UnitTest,由于MVC中显现层至今没有甚么好的UnitTest办法(不管是不长进的httpUnit们仍是粗笨的GUItest工具),而我们的营业逻辑又严厉封装在营业层,Controler层只做个组装分拨的基础举措,没需要花鼎力气往测试。
在Spring下的测试很复杂,即便手写ApplicationContext的载进与Bean的创立都很复杂,但在两方面Spring供应了更年夜的便利
1.bean的静态注进
原本本人手工load也不贫苦,但只需你的testCase承继Spring-mock.jar里的AbstractDependencyInjectionSpringContextTests,你乃至只需把变量声明为protected,就会取得主动注进.
2.数据库情况的保持
Spring的办理办法也非常复杂,他会为每一个办法主动的,强迫的rollback,如许就不存在清算-保持的成绩了,只需你的testCase承继于AbstractTransactionalDataSourceSpringContextTests.
同时,这个AbstractTransactionalDataSourceSpringContextTests兼有下面AbstractDependencyInjectionSpringContextTests的功效.
3.进一步简化
一来这两个基类的名字都太长了,二来另有一些大众的设定,好比在机关函数实行setPopulateProtectedVariables(true);如许子只需声明protected就会主动态注进,不然还要写setter才会主动态注进.好比一些大众的context文件的界说.
以是我们笼统了一个基类publicclassDAOTestCaseextendsAbstractTransactionalDataSourceSpringContextTests{protectedArrayList<String>contexts=null;
publicDAOTestCase(){//设了这个,就可以autowirebyname,不然bysetter.setPopulateProtectedVariables(true);
contexts=newArrayList<String>();contexts.add("/applicationContext-Hibernate.xml");contexts.add("/applicationContext-SetupService.xml");}
publicString[]getConfigLocations(){String[]tmp=newString[contexts.size()];returncontexts.toArray(tmp);}}
实践的子类publicclassCustomerDAOTestextendsDAOTestCase{protectedCustomerDAOcustomerDAO;
publicvoidtestGetCustomer()throwsException{Customercustomer=customerDAO.lookCustomer(1);assertEquals((int)customer.getCustomerNo(),1)}}
java是一种面向对象的编程语言,优点是可移植性比较高,最初设计时就是本着一次编写到处执行设计的。可以开发各种应用程序和游戏,不过速度没有c++快,所以一般是不用java来编写应用程序和电脑游戏。 |
|