7、在Spring 5中使用JUnit单元测试

2019-03-18  本文已影响0人  See5170

1、在pom文件中添加依赖

<!--spring-test依赖-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>5.1.5.RELEASE</version>
      <scope>test</scope>
    </dependency>
    <!--junit依赖-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>

2、编写待测程序Max.java

package com.spring;

public class Max {
    private int a;
    private int b;

    public Max(int a, int b) {
        this.a = a;
        this.b = b;
    }

    public int getMax() {
        return a > b ? a : b;
    }
}

3、配置Max的bean

 <bean id="max" class="com.spring.Max">
        <constructor-arg name="a" value="5"/>
        <constructor-arg name="b" value="3"/>
    </bean>

4、创建单元测试代码

5MaxTest类

在Test包下,会自动创建一个MaxTest类,具体代码如下:

package com.spring;

import org.apache.log4j.Logger;
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 static org.junit.Assert.assertEquals;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/spring.xml"})
public class MaxTest {

    private static Logger log = Logger.getLogger(MaxTest.class.getClass());

    @Autowired
    private Max max;

    @Test
    public void getMax() {
        log.debug("test by mqxu");
        assertEquals(5, max.getMax());
    }
}

5、运行结果

image

6、综合练习

package com.spring.ioc;

public class User {
    private String account;
    private String password;

    public User() {
    }

    public User(String account, String password) {
        this.account = account;
        this.password = password;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" + "account='" + account + '\'' + ", password='" + password + '\'' + '}';
    }
}

package com.spring.ioc;

public class UserLogin {
    private User user;

    public UserLogin() {
    }

    public UserLogin(User user) {
        this.user = user;
    }

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public boolean userLogin(User user) {
        if ("admin".equals(user.getAccount()) && "123".equals(user.getPassword())) {
            return true;
        } else {
            return false;
        }
    }
}

    <!--配置一个User的bean-->
    <bean id="user" class="com.spring.ioc.User">
        <constructor-arg name="account" value="admin"/>
        <constructor-arg name="password" value="123"/>
    </bean>

    <!--配置一个UserLogin的bean-->
    <bean id="userLogin" class="com.spring.ioc.UserLogin">
        <property name="user" ref="user"/>
    </bean>

package com.spring.ioc;

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 static org.junit.Assert.*;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/applicationContext.xml"})
public class UserLoginTest {
    @Autowired
    private User user;

    @Autowired
    private UserLogin userLogin;

    @Test
    public void userLogin() {
        assertEquals(true, userLogin.userLogin(user));
    }
}

上一篇下一篇

猜你喜欢

热点阅读