`
jgsj
  • 浏览: 962299 次
文章分类
社区版块
存档分类
最新评论

Junit4的annotation版单元测试

 
阅读更多

现在开发都用annotation的标签注解了,如果Junit4还不能灵活运用annotation,还要写一个个手动装配那多麻烦啊,呵呵,所以就引出我要教你们的annotation单元测试了,呵呵

废话补不多说,直接看上代码:

package com.xxx.service.impl;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.xxx.dao.UserDao;
import com.xxx.model.User;
import com.xxx.service.UserService;

@Service("userService")
public class UserServiceImpl extends BaseServiceImpl<User> implements UserService {
	@Autowired
	private UserDao userDao;
	public User userExist(User user) {
		return userDao.userExist(user);
	}
}

比如说有这么一个UserServiceImpl 的业务类,其中他提供了一个userExist方法,检测用户是否存在的


那么我不想启动服务器,去测试,而是想知道,这个方法能不能正确执行,会不会报错

那么就用Junit吧

方法也很简单,上代码:

package com.xxx.service;

import java.util.List;

import org.junit.Assert;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;

import com.xxx.dao.UserDao;
import com.xxx.model.User;
import com.xxx.utils.PageUtil;
@ContextConfiguration("classpath:applicationContext.xml")
public class UserTest extends AbstractJUnit4SpringContextTests{
	@Autowired
	private UserService userService;
	
	@Test
	public void userExist() {
		User user = new User();
		user.setName("aaa");
		//userService.saveEntity(user);
		User u = userService.userExist(user);
		//System.out.println(u.getName());
		System.out.println(null!=u);
	}
	
}


呵呵,代码是不是很整洁啊,不用再用@before来手动装备bean了,直接@Autowire交给容器了,关键就是该测试类要继承AbstractJUnit4SpringContextTests这个父类,然后再用

@ContextConfiguration("classpath:applicationContext.xml"),指定你的applicationContext.xml的路径,这样就ok了
最后补充一点,有人说类似@Autowired不应该写在属性上,而是应该写在set方法上,原因是作为该类属性一般都是用private修饰的,既然私有化了,就不应该随便让外部对其进行随意装配,但这只是最佳实践,没有强制规定,呵呵,我就比较喜欢写在属性上,这样可以省略get,set,至于结论,我还是建议你们前者吧,别学我,呵呵
分享到:
评论

相关推荐

    单元测试利器 JUnit 4

    详细的介绍了junit单元测试的过程,JUnit 是 Java 社区中知名度最高的单元测试工具,本文中所介绍的是最新的JUnit 4单元测试,JUnit 4 使用 Java 5 中的注解(annotation)使测试变得更加简单

    JUnit4单元测试入门详解.pdf

    JUnit4 主要目标便是利用Java5 的Annotation 特性简化测试用例的编写

    junit 4 资料

    它大大简化了开发人员执行单元测试的难度,特别是 JUnit 4 使用 Java 5 中的注解(annotation)使测试变得更加简单。 在单元测试前首先规划单元测试代码应放在什么地方。把它和被测试代码混在一起,这显然会照成混乱...

    说说JUnit4下的单元测试用例的使用

    为了让JUnit发现系统的测试用例和测试方法,JUnit提供了Annotation修饰.@Test:所有希望被运行的测试方法都应该使用该Annotation@Before:如果希望每次运行测试方法之前先运行指定的回收资源的方法,则该回收资源的...

    单元测试利器JUnit4

    本文内容包括:引言JUnit4初体验JUnit深入JUnit和Ant总结本文主要介绍了如何使用JUnit4提供的各种功能开展有效的单元测试,并通过一个实例演示了如何使用Ant执行自动化的单元测试。本文假设读者对Eclipse下进行Java...

    JUnit 4 抢先看.doc

    JUnit 是 Java™ 语言事实上的 标准单元测试库。JUnit 4 是该库三年以来最具里程碑意义的一次发布。它的新特性主要是通过采用 Java 5 中的标记(annotation)而不是利用子类、反射或命名机制来识别测试,从而简化...

    JUnit4详解

    JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。

    test.junit-4.5.jar和test.junit-4.5-sources.jar

    单元测试所需的junit jar包,里面包含class jar 和源码jar,JUnit 是JAVA语言事实上的标准测试库。JUnit 4是三年以来最具里程碑意义的一次发布。它的新特性主要是针对JAVA5中的标记(annotation)来简化测试,而不是...

    Java测试新技术TestNG和高级概念.part1

    无论您使用TestNG,JUnit或其他测试框架,本书提供的测试设计模式都会告诉您如何改进您的测试,对如何让代码和设计变得更可测试提供具体的建议。 目录: 第1章 起步 1.1 超越JUnit 3 1.2 JUnit 4 1.3 针对可测试性而...

    Junit4教程

    JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。

    junit4.11.chm

    java单元测试框架junit4.11版,基于annotation(注解)的junit帮助手册

    扩展JUnit测试并行程序

    对于Java来说,JUnit是备受开发人员喜爱的单元测试工具。它甚至还影响了其他语言的测试框架。这点,我们从繁多的xUnit框架就可以看出来。随着多核时代的到来,开发人员将需要进行越来越多的并行程序测试。得益于...

    Java测试新技术TestNG和高级概念.part2

    无论您使用TestNG,JUnit或其他测试框架,本书提供的测试设计模式都会告诉您如何改进您的测试,对如何让代码和设计变得更可测试提供具体的建议。 目录: 第1章 起步 1.1 超越JUnit 3 1.2 JUnit 4 1.3 针对可测试性而...

    手把手教你用Eclipse+TestNG搭建接口自动化测试框架

    TestNG是一个测试框架,不仅仅用来做单元测试,还包括集成测试。利用注解(annotation)来标注测试类。 测试方法的名字不必以test开始,命名灵活; 测试方法可以返回值,不必是void的; 测试方法可以传入参数; 测试...

    JUint实验指导

    主要介绍了如何使用 JUnit 4 提供的各种功能开展有效的单元测试,并通过一个实例演示了如何使用 Ant 执行自动化的单元测试。本文假设读者对 Eclipse 下进行 Java 开发有一定的经验,并了解 Java 5 中的注解...

    Spring.3.x企业应用开发实战(完整版).part2

    16.7.1 对LoginController进行单元测试 16.7.2 使用Spring Servlet API模拟对象 16.7.3 使用Spring RestTemplate测试 16.7.4 使用Selenium测试 16.8 小结 第17章 实战案例开发 17.1 论坛案例概述 17.1.1 论坛整体...

    Spring3.x企业应用开发实战(完整版) part1

    16.7.1 对LoginController进行单元测试 16.7.2 使用Spring Servlet API模拟对象 16.7.3 使用Spring RestTemplate测试 16.7.4 使用Selenium测试 16.8 小结 第17章 实战案例开发 17.1 论坛案例概述 17.1.1 论坛整体...

Global site tag (gtag.js) - Google Analytics