Spring+junit 简单使用说明

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

这里写图片描述
点击此处即可选择运行方式。如果在类上进行执行,将会执行该类下所有的测试方法。

猜你喜欢

转载自blog.csdn.net/it_faquir/article/details/79282274