`

Junit测试

阅读更多
备忘:
Action:需要依赖
      <dependency>
            <groupId>org.apache.struts</groupId>
            <artifactId>struts2-junit-plugin</artifactId>
            <version>2.3.16</version>
            <scope>test</scope>
        </dependency>
package action;

import com.opensymphony.xwork2.ActionProxy;
import com.renyuandao.actionImp.SocialContactActionImp;
import com.renyuandao.model.UserFriends;
import org.apache.struts2.StrutsSpringTestCase;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.transaction.TransactionConfiguration;


/**
 * 此类测试action,测试功能
 * Author: Dream.YnagLong
 * Date: 13-12-19
 * Time: 下午12:47
 * E-mail:410357434@163.com
 */
@ContextConfiguration(locations={"classpath*:applicationContext*.xml",
})
@TransactionConfiguration(transactionManager="transactionManager",defaultRollback=false)
public class TempleActionTest extends StrutsSpringTestCase{
    private SocialContactActionImp socialAction;
    private ActionProxy proxy;
    public void testSocial() throws Exception{
        proxy = this.getActionProxy("/socialAction!socialContent.do");
        socialAction = (SocialContactActionImp)proxy.getAction();
        UserFriends userFriends = new UserFriends();
        userFriends.setUserid(17);
        userFriends.setFriendid(18);
        userFriends.setFstatus(1);
        socialAction.setUserFriends(userFriends);
        String doaction = socialAction.socialContent();
        this.assertEquals("social", doaction);

    }
}

Service:

package service;

import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractTransactionalJUnit4SpringContextTests;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;

/**
 * @author DR.YangLong
 * spring3集成测试模板类,不允许提交SVN版本库
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath*:applicationContext*.xml",
})
@TransactionConfiguration(transactionManager="transactionManager",defaultRollback=false)
public abstract class SupperServiceTest extends AbstractTransactionalJUnit4SpringContextTests{
}



package service;

import com.renyuandao.manager.service.SuperuserService;
import com.renyuandao.model.UserDept;
import com.renyuandao.model.UserFriends;
import com.renyuandao.model.UserInfo;
import com.renyuandao.service.SocialContactService;
import com.renyuandao.service.UserInfoService;
import com.renyuandao.util.PagerHelper;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;

/**
 * Author: Dream.YnagLong
 * Date: 13-12-19
 * Time: 下午12:08
 * E-mail:410357434@163.com
 */
@RunWith(SpringJUnit4ClassRunner.class)
public class TempleServiceTest extends SupperServiceTest {
     //自动注入 @Autowired,推荐使用@Resource
    @Resource(name = "service_userinfo")
    private UserInfoService userInfoServiceervice;
    @Autowired
    private SuperuserService superuserService;
    @Autowired
    private SocialContactService socialContactService;
    //涉及事务的方法都要加注解,Rollback属性默认为true,事务不会提交数据库,保护现场请设true
    @Transactional
    @Rollback(false)
    @Test
    public void testRegister(){
        UserInfo user=new UserInfo();
        UserDept dept=new UserDept();
        dept.setDept("集成测试");
        dept.setDeptadress("都市枫林");
        user.setUsername("集成测试");
        user.setEmail("444444@163.com");
        userInfoServiceervice.addUser(user,dept);
        user.getId();
    }
    @Transactional
    @Rollback(false)
    @Test
    public void testGetList(){
        PagerHelper pg=new PagerHelper();
        UserInfo user=new UserInfo();
        user.setVerifystatus(0);
        int total=superuserService.getUserInfoCount(user);
         pg.init(total,5);
        List<UserInfo> users=superuserService.getUserInfoList(user,pg);
        for(UserInfo usera:users){
           System.out.println(usera.getVerifystatus());
        }
        user.getId();
    }

    @Test
    @Transactional
    @Rollback(false)
    public void testAddFriend(){
        UserFriends userFriends=new UserFriends();
        userFriends.setFriendid(17);
        userFriends.setUserid(18);
        userFriends.setFstatus(1);
        //更新状态
        socialContactService.removeOrBlackFriend(userFriends);
    }
}


DAO:
package dao;

import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.transaction.TransactionConfiguration;

/** 用spring测试DAO,不用加载配置文件获取sqlSession
 * Author: Dream.YnagLong
 * Date: 13-12-20
 * Time: 下午4:17
 * E-mail:410357434@163.com
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath*:applicationContext*.xml",
})
@TransactionConfiguration(transactionManager="transactionManager",defaultRollback=false)
public abstract class DaoTestBySpring {

}


package dao;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import com.renyuandao.dao.UserInfoMapper;
import com.renyuandao.model.UserInfo;
/**
 * dao测试类,没有采用spring注入,所有DAO测试可以继承该类进行测试
 * @author DR.YangLong
 *
 */
public abstract class DaoTest {
	// sqlSessionFactory
	private static SqlSessionFactory sqlSessionFactory;
	// mybatis file
	private static final String MYBATIS_CONFIG_FILENAME = "mybatis-config.xml";
	static {
		Reader reader = null;
		try {
			reader = Resources.getResourceAsReader(MYBATIS_CONFIG_FILENAME);
		} catch (IOException e) {
			System.out.println(e.getMessage());
		}
		// build SqlSessionFactory by SqlSessionFactoryBuilder,the builder used once
		sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
	}

	// the method get SqlSessionFactory
	public static SqlSessionFactory getSqlSessionFactory() {
		return sqlSessionFactory;
	}

	// the test method,this is templates method
	@Test
	public void addUser() {
		// SqlSession
		SqlSession sqlSession = getSqlSessionFactory().openSession();
		try {
			//create dao by SqlSession
			UserInfoMapper mapper = sqlSession.getMapper(UserInfoMapper.class);
			UserInfo userinfo = new UserInfo();
			userinfo.setUsername("Maven");
			userinfo.setPasw("thisistest");
			userinfo.setBirthday("1999-10-11");
			int id=mapper.insertSelective(userinfo);
			sqlSession.commit();
			System.out.println(id);
		} finally {
			sqlSession.close();
		}
	}
}
分享到:
评论

相关推荐

    实验5 JUnit测试框架的使用.doc

    JUnit 测试框架的使用 JUnit 是一个流行的单元测试框架,广泛应用于 Java 项目中,本文将详细介绍 JUnit 测试框架的使用,并提供了两个示例来帮助读者更好地理解和掌握 JUnit 的使用。 一、JUnit 测试框架的使用 ...

    自动饮料机Junit测试(软件测试与质量保证实验).rar

    本实验“自动饮料机Junit测试”旨在帮助学生深入理解和应用单元测试,特别是在Java编程环境下。单元测试是一种针对程序代码最小可测试单元进行验证的方法,通常这个单元是函数或方法。Junit是Java领域广泛使用的单元...

    Junit测试案例使用

    3. Junit 的优点:由于 Junit 相对独立于所编写的代码,可以测试代码的编写可以先于实现代码的编写,XP 中推崇的 test first design 的实现有了现成的手段:用 Junit 写测试代码,写实现代码,运行测试,测试失败,...

    javaweb中.java文件测试需要的框架(junit测试).rar

    本压缩包文件"javaweb中.java文件测试需要的框架(junit测试).rar"显然是为了帮助开发者理解如何在Java Web项目中使用JUnit进行测试。 **JUnit框架详解** JUnit是一个基于注解的测试框架,它的核心功能包括: 1....

    Junit测试jar包

    JUnit测试jar包通常包含了JUnit框架的核心库和其他可能的扩展或辅助库,使得开发人员可以在他们的项目中引入这些测试工具。这个压缩包很可能包含了JUnit的不同版本,例如JUnit4或JUnit5,以及可能的依赖如Hamcrest...

    Eclipse进行Junit测试

    Eclipse进行Junit测试 Eclipse 是一个功能强大且广泛使用的集成开发环境(IDE),Junit 是一个基于 Java 的单元测试框架。使用 Eclipse 进行 Junit 测试可以大大提高测试效率和质量。 一、Junit 简介 Junit 是一...

    Junit测试学习文档

    《Junit测试学习文档》 在软件开发过程中,单元测试是一项至关重要的工作,它能确保代码的正确性,提高代码质量,并为后续的维护和重构提供保障。Junit作为Java编程语言中最流行的单元测试框架,是每个Java开发者...

    junit测试工具以及安装方法

    本文将详细介绍JUnit测试工具及其安装方法。 **一、JUnit简介** JUnit是一个开源的、基于Java的测试框架,主要用于编写和运行可重复的单元测试。它的设计理念是使测试成为开发过程中的一个自然部分,通过自动化测试...

    JUnit测试jar包.zip

    这个"JUnit测试jar包.zip"文件很可能包含了JUnit库的jar文件,使得开发者能够在自己的项目中引入JUnit进行测试工作。 在Java开发中,单元测试是一种重要的软件质量保证手段,它通过编写小规模的独立测试代码来验证...

    JUNIT测试

    JUnit是Java编程语言中最常用的单元测试框架之一,它允许...总之,JUnit测试对于Java开发人员来说是一项必备技能,它可以帮助确保代码质量,预防bug,并在持续集成环境中提供反馈,以保证软件项目的稳定性和可靠性。

    junit测试小demo

    在这个名为"junit测试小demo"的压缩包文件中,我们可以预期它包含了一些关于如何使用Junit进行单元测试的示例代码或教程。 首先,让我们来理解一下Junit的基本概念。Junit是一个开源项目,由Eclipse基金会维护,...

    junit测试private函数

    5. **断言结果**:在JUnit测试中,我们可以使用`assertEquals()`等断言方法,验证私有方法执行后的结果是否符合预期。 下面是一个简单的例子,展示如何使用JUnit测试私有方法: ```java import org.junit.Test; ...

    junit测试

    1. **测试类(Test Class)**:一个包含JUnit测试用例的Java类。通常,测试类会与被测试的类处于同一个包中,以避免访问权限问题。 2. **测试方法(Test Method)**:在测试类中,带有`@Test`注解的方法即为测试...

    junit测试_java_JUnit_JUnit测试_

    例如,文件可能会讲解如何设置一个基本的JUnit测试类,通常这个类会继承自`junit.framework.TestCase`(对于较旧的JUnit版本)或者使用注解`@RunWith(JUnit4.class)`(对于JUnit 4及以上版本)。 测试类中的每个...

    Junit测试.mp4

    Junit测试.mp4

    junit 测试工具包--测试过程

    自己做了一个junit测试包,用起来很方便

    junit测试案例程序

    在这个“junit测试案例程序”中,我们可以找到一些基本的JUnit测试用例示例,这对于初学者来说是极好的学习资源。 首先,JUnit的核心概念是测试类和测试方法。一个测试类通常对应于被测试的业务逻辑类,而测试方法...

    junit-volkswagen,检测JUnit测试何时在CI服务器中运行,并使其通过。.zip

    《使用junit-volkswagen确保CI服务器上的JUnit测试通过》 在软件开发过程中,单元测试是一种重要的质量保证手段,它能够帮助开发者及时发现并修复代码中的错误。JUnit作为Java领域最常用的单元测试框架,为开发者...

    junit测试用例calculate

    JUnit 测试用例 calculate JUnit 测试用例 calculate 是一个简单的用例,旨在帮助掌握 JUnit 方法。该测试用例主要涉及到 JUnit 的基本使用、测试方法的编写、测试结果的分析等方面。 一、JUnit 简介 JUnit 是一...

Global site tag (gtag.js) - Google Analytics