Spring+junit 简单使用说明

时间:2022-05-24 16:04:25

Spring+junit 简单使用说明

MAVEN相关测试包

    <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>

注:${spring.version} 为您当前使用的spring版本,可通过如下方式声明

<properties>   
<spring.version>4.2.9.RELEASE</spring.version>
</properties>

你也可以直接将${spring.version} 替换成4.2.9.RELEASE

测试示例代码

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import priv.hgs.test.domain.Goods;
/**
* Created by Administrator on 2017/6/8.
*/

@RunWith(SpringJUnit4ClassRunner.class) //使用junit4进行测试
@ContextConfiguration(locations = "classpath:applicationContext-base.xml")
public class BeanTest {
@Autowired
Goods goods;
@Test
public void beanTest(){
System.out.println("---:"+goods.toString());
}
}

注解说明

加载配置注解
@ContextConfiguration Spring整合JUnit4测试时,使用注解引入多个配置文件

单个文件
路径方式:@ContextConfiguration(Locations=”../applicationContext.xml”)
类方式:@ContextConfiguration(classes = SimpleConfiguration.class)

多个文件时,可用{}
@ContextConfiguration(locations = { “classpath*:/spring1.xml”, “classpath*:/spring2.xml” })
@ContextConfiguration(classes= { SimpleConfiguration.class, TestConfig.class })

也可以直接使用value
执行器注解
@RunWith(SpringJUnit4ClassRunner.class)
@RunWith是一个执行器
这里使用了Spring的SpringJUnit4ClassRunner,让测试运行于Spring测试环境,以便在测试开始的时候自动创建Spring的应用上下文。 注解了@RunWith就可以直接使用spring容器,直接使用@Test注解,不用启动spring容器

Junit 注解解释

  1. @Test : 测试方法,测试程序会运行的方法,后边可以跟参数代表不同的测试,如(expected=XXException.class) 异常测试,(timeout=xxx)超时测试
  2. @Ignore : 被忽略的测试方法
  3. @Before: 每一个测试方法之前运行
  4. @After : 每一个测试方法之后运行
  5. @BeforeClass: 所有测试开始之前运行
  6. @AfterClass: 所有测试结束之后运行
    fail方法是指测试失败
    assertEquals测试2个参数是否相等,具体参考相应API
    各注解使用方法
  package JUnitTest;  

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;

public class TestJava {

@Test
public void testMain() {
fail("Not yet implemented");
}

@Test
public void testTest() {
System.out.println("@Test");//调用自己要测试的方法
}

@Test
public void testAssert() {
assertEquals("chenleixing","chenlei");
}

@Test(timeout=1)
public void testTimeout() {
System.out.println("超时测试");
}

@Before
public void testBefore(){
System.out.println("@Before");
}

@BeforeClass
public static void testBeforeClass(){//必须为静态方法
System.out.println("@BeforeClass");
}

@After
public void testAfter(){
System.out.println("@After");
}

@AfterClass
public static void testAfterClass(){//必须为静态方法
System.out.println("@AfterClass");
}

@Ignore
public void testIgnore(){
System.out.println("@Ignore");
}
}

执行说明

只需要针对某个测试方法进行执行即可,一个带junit注解的方法,相当于一个main,可以直接进行执行,如下idea截图

Spring+junit 简单使用说明
点击此处即可选择运行方式。如果在类上进行执行,将会执行该类下所有的测试方法。