注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

让一切都逝去吧

排骨炖泥菜/猪肝炒苹果/鱼籽狗肉汤/狗头薏米汤

 
 
 

日志

 
 

TestNG spring测试  

2015-01-01 21:37:03|  分类: 测试 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
      对于Controller的单元测试,这里http://ljhzzyx.blog.163.com/blog/static/38380312201432210959464/有说明,可以使用junit测试成功。这种方式,javaee-web-api和persistence-api的依赖,在部署和运行测试时要交替着使用,还是麻烦。这里换一个依赖,并用TestNG进行测试。javaee-web-api相关一系列依赖换成下面一个依赖即可:
<!-- 这里请使用glassfish-embedded-all,而不要用javaee-web-api,因为javaee-web-api不支持测试代码,而glassfish-embedded-all支持-->
<dependency>
<groupId>org.glassfish.main.extras</groupId>
<artifactId>glassfish-embedded-all</artifactId>
<version>3.1.2.2</version>
<scope>provided</scope>
</dependency>
TestNG写的测试主要结构如下:
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.notNullValue;

@ContextConfiguration(locations = {"classpath:dispatcher-servlet.xml", "classpath:applicationContext.xml"})
public class OrderControllerTest extends AbstractTestNGSpringContextTests {
    @Autowired
    private OrderController orderController;
    ...
}
      当前项目用的是javaee 6,则对应的glassfish-embedded-all版本到3为止。如果版本升级到4,会报错:
Error:java: 错误:构造处理程序对象 org/glassfish/admin/rest/annotation/processor/RestModelExtensionProcessor : Unsupported major.minor version 51.0 时抛出异常
glassfish-embedded-all版本4以上对应javaee 7。

      经过当前一个项目的实验,下面这段可以替换glassfish-embedded-all
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>7.0.57</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>el-api</artifactId>
<version>2.2</version>
<scope>provided</scope>
</dependency>
glassfish-embedded-all的jar包很大,里面包含的内容很多。当前项目在配置tomcat-servlet-api依赖时可以正常运行测试,应该是当前项目尚不复杂的缘故。因此项目简单的情况下,应该可以使用tomcat-servlet-api代替glassfish-embedded-all。
  评论这张
 
阅读(1270)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017