Java中JUnit和注解的相关知识

一、JUnit单元测试

1、JUnit介绍

JUnit是帮我们进行代码测试,平时我们要测试一段代码是否正确,就必须创建main()方法对其进行测试。JUnit大大简化了这个操作,可以使我们在不创建main()方法的情况下,对所要进行测试的方法进行测试,真正简单的做到“写一点,测一点”,方便我们发现错误,减少回归错误的纠错程度。


2、测试案例

(1)对如下代码进行测试:

public class Calculator {
    public int Add(int a, int b){
        return a+b;
    }

    public int Sub(int a, int b){
        return a-b;
    }
}

(2)新建一个测试类,添加 @Test注解 ,表明是JUnit测试

public class exampleTest {
    @Test
    public void testAdd(){
        Calculator cal = new Calculator();
        int result = cal.Add(10, 20);
        System.out.println(result);
    }
}

(3)添加断言
在(2)中,主要测试的是代码的完整性,是否能正常运行,而不能检测是否出现逻辑错误,例如误将Add方法中的“+”写成“-”,程序仍能正常运行,为了检测这类错误,引入断言。

断言:用于预测结果,判断我预测的结果是否和实际的结果一致
   Assert.assertEquals(预测值, 实际结果);

public class exampleTest {
    @Test
    public void testAdd(){
        Calculator cal = new Calculator();
        int result = cal.Add(10, 20);

        Assert.assertEquals(30, result);
    }
}

若不一致则会出现如下情况:
在这里插入图片描述
(4)补充方法:@Before、@After

@Before:某一个方法中加入了@Before注解后,这个方法中的功能就会在测试方法执行前先执行。

一般会在@Before修饰的那个方法中加入:一些申请资源的代码;申请数据库资源;申请IO资源;申请网络资源等。

@After:某一个方法中加入了@After注解后,那这个方法中的功能就会在测试方法执行后再执行。

一般会在@After修饰的那个方法中加入:释放资源的代码;释放数据库资源;释放IO资源;释放网络资源等。


二、注解

注解(Annotation)也称元数据,是代码里的特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理,通过使用注解,程序员可以在不改变原有逻辑的情况下,在源文件中嵌入一些补充信息。

1、JUnit中的注解

JUint中的@Test,@After,@Before均是注解。


2、文档相关注解

代码中用/** … */注释中的信息。例如:@Author,@Time,@param,@exception等。


3、JDK内置的3个注解

(1)@Override:限定重写父类方法,该注解只能用于方法。
(2)@Deprecated:用于表示锁修饰的元素(类,方法,构造器,属性等)已过时(废弃)。通常是因为所修饰的结构危险或存在更好的选择。
(3)@SuppressWarnings:抑制编译器警告。


4、实现替代配置文件功能的注解


三、元注解

元注解是用于修饰其他注解的注解。 分为四种:@Retention、@Target、@Documented、@Inherited。

1、@Retention

用于修饰注解,用于指定修饰的那个注解的生命周期,@Retention包含一个RetentionPolicy枚举类型的成员变量,使用@Retention时必须为该value成员变量指定值。
(1)RetentionPolicy.SOURCE:在源文件中有效(即在源文件保留),编译器直接丢弃这种策略的注解,在.class文件中不会保留注解信息;
(2)RetentionPolicy.CLASS:在class文件中有效(即class保留),保留在.class文件中,但当运行Java程序时,它就不会继续加载,不会保留在内存中,JVM不会保留注解。如果注释没有加Retention元注解,就默认为这种状态;
(3)RetentionPolicy.RUNTIME:在运行时有效(即运行时保留),当运行Java程序时,JVM会保留注解,加载到内存中,那么程序可以通过反射获取该注解。


2、@Target

用于指定被修饰的注解能用于修饰哪些程序元素(类、属性、方法等。)


3、@Documented

用于指定被该元注解修饰的注解类将被javadoc工具提取成文档。默认情况下,javadoc是不包括注解的,但加上之后就会带注解。


4、@Inherited

被其修饰的注解将具有继承性,如果某个类使用了被@Inherited修饰的Annotation,则其子类将自动具有该注解。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring JUnit 注解测试是一种基于 Spring 框架的单元测试方法,通过使用注解来实现依赖注入、AOP、事务控制等功能,从而方便地进行单元测试。 下面是 Spring JUnit 注解测试常用的注解及其作用: 1. @RunWith(SpringJUnit4ClassRunner.class):指定运行测试的类为 SpringJUnit4ClassRunner,该类会创建 Spring 的上下文环境,并自动加载指定的配置文件或配置类。 2. @ContextConfiguration:指定 Spring 的配置文件或配置类,用于创建 Spring 的上下文环境。 3. @Autowired:自动装配 Spring 容器的 Bean,可以省略 setter 方法。 4. @Transactional:在测试方法添加该注解可以实现事务控制,测试方法执行完成后自动回滚事务。 5. @Test:用于标记测试方法。 下面是一个简单的 Spring JUnit 注解测试的例子: ```java @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = AppConfig.class) @Transactional public class UserServiceTest { @Autowired private UserService userService; @Test public void testAddUser() { User user = new User(); user.setUsername("test"); user.setPassword("123456"); userService.addUser(user); User addedUser = userService.getUserByName("test"); Assert.assertEquals("test", addedUser.getUsername()); } } ``` 在该例子,@RunWith 指定了运行测试的类为 SpringJUnit4ClassRunner,@ContextConfiguration 指定了需要加载的配置类 AppConfig,@Transactional 用于进行事务控制,@Autowired 实现了依赖注入,@Test 标记了测试方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值