您的位置:首页 > 编程语言 > Java开发

Spring+junit 简单使用说明

2018-02-07 17:14 405 查看

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 注解解释

@Test : 测试方法,测试程序会运行的方法,后边可以跟参数代表不同的测试,如(expected=XXException.class) 异常测试,(timeout=xxx)超时测试

@Ignore : 被忽略的测试方法

@Before: 每一个测试方法之前运行

@After : 每一个测试方法之后运行

@BeforeClass: 所有测试开始之前运行

@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截图



点击此处即可选择运行方式。如果在类上进行执行,将会执行该类下所有的测试方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: