springockito-annotations 做spring的单元测试_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > springockito-annotations 做spring的单元测试

springockito-annotations 做spring的单元测试

 2013/8/20 15:37:09  josephgao  程序员俱乐部  我要评论(0)
  • 摘要:1.mavendependency<dependency><groupId>org.kubek2k</groupId><artifactId>springockito-annotations</artifactId><version>1.0.8</version><scope>test</scope></dependency>2.用法
  • 标签:测试 not Annotation Spring
1. maven dependency
class="xml"><dependency>
            <groupId>org.kubek2k</groupId>
            <artifactId>springockito-annotations</artifactId>
            <version>1.0.8</version>
            <scope>test</scope>
        </dependency>


2. 用法:
 
@ContextConfiguration(loader = SpringockitoContextLoader.class,
locations = <xml_contexts_you_used_before>)
public class SpringockitoAnnotationsMocksIntegrationTest extends AbstractJUnit4SpringContextTests {
...
}


Mock:

  
@ReplaceWithMock
    @Autowired
    private InnerBean innerBean;

这样spring中注入的innerBean就被mock了, 可以在用的时候用org.mockito.Mockito下面的工具了when(innerBean.someMethod(parameters).thenReturn(result), 或者doNothing().when(innerBean).voidMethod()

3. 出现的问题
    为了代码复用,不冗余, 做了几个测试的基类, 每个类都用了一样的location,这样每个继承自该基类的测试类在单独测试的时候都没有问题,但是mvn test却会失败, 跟踪了一下发现当做完第一个基类的测试时候第二个基类的mock注解完全没有用,应该是context每个location只生成一遍。所以每个基类最好对应一个单独的location和context文件。

4. 其他一些经验
   单元测试其实是为了测试某个功能模块的逻辑准确性,需要将这个功能模块所用到的外部功能都mock掉,然后测试输入输出的匹配性,与spring结合到一起的时候就应该是测试dao层的时候将db mock掉,测试service的时候将dao mock掉。 具体的使用还是各位自行参悟。
上一篇: MVC自学第四课 下一篇: 学习列表
发表评论
用户名: 匿名