@RunWith(SpringJunit4ClassRunner.class) 简介

  1.今天我在看Spring实战这本书时,我看到了@RunWith(SpringJunit4ClassRunner.class)这样的单元测试

package com.xuefei.spring_pro.test;

import static org.junit.Assert.assertNotNull;

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 com.xuefei.spring_pro.cdDemo.CDPlayConfig;
import com.xuefei.spring_pro.cdDemo.CompactDisc;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = CDPlayConfig.class)
public class CDPlayTest {

    @Autowired
    private CompactDisc cd;

    @Test
    public void cdShouldNotBeNull() {
        cd.play();
        assertNotNull(cd);

    }
}

  就上网了解了一下

  这种写法是为了让测试在Spring容器环境下执行。

  Spring的容器环境是啥呢?

    比如常见的 Service Dao Action , 这些个东西,都在Spring容器里,junit需要将他们拿到,并且使用来测试。

  注解说明:

    1)@RunWith:用于指定junit运行环境,是junit提供给其他框架测试环境接口扩展,为了便于使用spring的依赖注入,spring提供了org.springframework.test.context.junit4.SpringJUnit4ClassRunner作为Junit测试环境。

    2)@ContextConfiguration({"classes=Congfig.clsss",classpath:applicationContext.xml"}) 这里可以用classes来直接导入同包下写的配置类。或者导入配置文件。

原文地址:https://www.cnblogs.com/lililixuefei/p/11874858.html

时间: 2025-01-13 10:35:26

@RunWith(SpringJunit4ClassRunner.class) 简介的相关文章

ssm框架问题1:@RunWith(SpringJUnit4ClassRunner.class)没有可用的导入包

I have a JUnit 4 test class in Eclipse Ganymede that has the following annotations : I have a JUnit 4 test class in Eclipse Ganymede that has the following annotations : @RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = {"class

@RunWith(Parameterized.class)和@RunWith(SpringJUnit4ClassRunner.class)

就如标题如果你既希望加载SpringContext跑集成测试,同时又希望使用JUnit的参数化方法跑基于数据的测试,该怎么办?@RunWith只允许你传入一个Class类型. 下面是一个Spring官方例子告诉你怎么实现: /* * Copyright 2002-2007 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you ma

@RunWith和 SpringJUnit4ClassRunner ---->junit4和Spring一起使用

今天在看Spring的Demo的时候,看到了如此单元测试的写法 如下: @RunWIth(SpringJunit4ClassRunner.class) @ContextConfiguration(locations = {"classpath:applicationContext.xml"} public  class MyTest { @Test public void hehe() { //....... } } 这种写法是为了让测试在Spring容器环境下执行. Spring的容

HSQL简介

前言 在对dao层写测试类的时候,我们需要一个测试数据库,一般我们会是专门建立一个真实的测试数据库,但是有了HSQLDB事情就变得简单了起来. 正题 一.简介: hsql数据库是一款纯Java编写的免费数据库,许可是BSD-style的协议,如果你是使用Java编程的话,不妨考虑一下使用它,相对其他数据库来说,其体积小,才563kb.仅一个hsqldb.jar文件就包括了数据库引擎,数据库驱动,还有其他用户界面操作等内容.在Java开源世界里,hsql是极为受欢迎的(就Java本身来说),JBo

AOP框架之AspectJ简介

这几天看JAVA基础看的有点头疼,决定时不时的换换口味,准备开始调研一些现在流行的技术,于是,开始埋头思考自己知识的盲区(当时,自己的知识盲区茫茫多...),想了几天后,决定要开始研究一下几种技术及实现原理. 1.AOP技术应用及实现原理. 2.quartz调度的DB持久模式及集群模式的实现及原理. 3.Mysql分库分表的方法. 4.JFinal框架的学习. 目前先暂定这个日常把,毕竟想搞定一块以我的水平来看,都得一周时间. 那么今儿我们就先来谈一谈AspectJ的实现吧,类似这样的文章在CS

SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介、创建消息生产者、创建消息消费者、自定义消息通道、分组与持久化、设置 RoutingKey)

1.概念:SpringCloudStream 2.具体内容 2.1.SpringCloudStream 简介 SpringCloudStream 就是使用了基于消息系统的微服务处理架构.对于消息系统而言一共分为两类:基于应用标准的 JMS.基于协议标准的 AMQP,在整个 SpringCloud 之中支持有 RabbitMQ.Kafka 组件的消息系统.利用 SpringCloudStream 可以实现更加方便的消息系统的整合处理,但是推荐还是基于 RabbitMQ 实现会更好一些. 为什么 S

[z]使用RunWith注解改变JUnit的默认执行类,并实现自已的Listener

用RunWith注解改变JUnit的默认执行类,并实现自已的Listener在平时的单元测试,如果不使用RunWith注解,那么JUnit将会采用默认的执行类Suite执行,如下类: [java] view plaincopy public class TestClass { @Test public void  t1(){} } JUnit允许用户指定其它的单元测试执行类,只需要我们的测试执行类继承类org.junit.runners.BlockJUnit4ClassRunner就可以了,Sp

Mybatis应用简介

第一章   MyBatis概述: 一.Mybatis介绍 MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录. 二.mybatis快速入门 2.1.准备开发环境 1.创建测试项目,普通java项目或者是JavaWeb项

SpringJUnit4ClassRunner拉起来的单元测试怎么装配Container实例

由于历史代码的原因,产品中部分spring装配的实例需要通过Container的实现类(自定义的)去获取.那么当在单元测试中怎么实例化这个Container实现呢? 实例化Container实现需要ApplicationContext实例. 现在问题演变成怎么在test case中拿到ApplicationContext实例. 不想通过硬编码的形式搞,想通过注解搞,怎么弄呢? 其实很简单:SpringJUnit4ClassRunner拉起来的类,会对加了@Autowired的Applicatio