day03-03 Spring中使用JUnit單元測試

一、Max練習

1、在pom.xml中添加依賴

<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
<dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${spring.version}</version>
    </dependency>

2、編寫Max.java

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、配置bean

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

4、創(chuàng)建Max單元測試

  • 在Max類的聲明的后面按“Alt+Enter”,選擇“Create Test”,或者在類的代碼體右鍵單擊,選擇Generate->Test,在如圖所以界面勾選JUnit4,并勾選待測方法getMax(),點擊OK


    day03-13.png
  • 完成后, 在Test包下,會自動創(chuàng)建一個MaxTest類,具體代碼
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.*;
//指定單元測試環(huán)境
@RunWith(SpringJUnit4ClassRunner.class)
//配置文件路徑
@ContextConfiguration(locations = {"/beans.xml"})
/**
 * Created by Administrator on 2019/3/4.
 */
public class MaxTest {
    //自動注入
    @Autowired
    private Max max;

    @Test
    public void getMax() throws Exception {
        assertEquals(5,max.getMax());
    }
}

頭部兩個注解表示指定運行環(huán)境和指定配置文件路徑,使用了@Autowired自動注入配置文件中的bean,使用assertEquals斷言,判斷期望值和實際值是否相等,并使用Logger記錄日志。

5、運行結果

day03-14.png

二、user UserLogin練習

定義User類,封裝account和password屬性,提供getter/setter,重載構造方法,重寫toString()方法
定義UserLogin類,封裝User屬性,提供getter/setter,并定義public boolean userLogin(User user);方法,判定某個用戶能否登陸成功,指定賬號為“admin”,密碼為“111”
寫配置文件,通過構造器注入創(chuàng)建一個User對象并傳值,通過setter注入創(chuàng)建UserLogin對象并傳值
寫單元測試,測試某用戶能否登陸成功

  • User類
public class User {
    private String account;
    private String password;
    public User(String account, String password) {
        this.account = account;
        this.password = password;
    }
    @Override
    public String toString() {
        return "User{" +
                "account='" + account + '\'' +
                ", 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;
    }
}
  • UserLogin類
public class UserLogin {
    private User user;
    public UserLogin(){}
    public UserLogin(User user) {
        this.user = user;
    }
    public boolean UserLogin(User user){
        if(user.getAccount().equals("admin")&&user.getPassword().equals("111")){
            return true;
        }else{
            return false;
        }
    }
}
  • UserLoginTest類
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)            //指定單元測試環(huán)境
@ContextConfiguration(locations = {"/beans.xml"})  //配置文件路徑
public class UserLoginTest {
    @Autowired
    private UserLogin userLogin;
    @Test
    public void userLogin() throws Exception {
        assertEquals(true,userLogin.UserLogin(userLogin.getUser()));
    }
}
  • 運行結果


    day03-15.png
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容