day7 在Spring 5中使用JUnit单元测试

1 在pom文件中添加依赖

org.springframeworkspring-test${spring.version}junitjunit4.12test

2 编写待测程序Max.java

publicclassMax{privateinta;privateintb;publicMax(inta,intb){this.a = a;this.b = b;    }publicintgetMax(){returna > b ? a : b;    }}

3 配置Max的bean

4 创建单元测试代码

在Max类的声明的后面按“Alt+Enter”,选择“Create Test”,或者在类的代码体右键单击,选择Generate->Test,在如图所以界面勾选JUnit4,并勾选待测方法getMax(),点击OK

Max类

完成后, 在Test包下,会自动创建一个MaxTest类,具体代码

importorg.apache.log4j.Logger;importorg.junit.Test;importorg.junit.runner.RunWith;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.test.context.ContextConfiguration;importorg.springframework.test.context.junit4.SpringJUnit4ClassRunner;importstaticorg.junit.Assert.assertEquals;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = {"/applicationContext.xml"})publicclassMaxTest{privatestaticLogger log = Logger.getLogger(MaxTest.class.getClass());@AutowiredprivateMax max;@TestpublicvoidgetMax(){        log.debug("test by mqxu");        assertEquals(5, max.getMax());    }}

头部两个注解表示指定运行环境和指定配置文件路径,使用了@Autowired自动注入配置文件中的bean,使用assertEquals断言,判断期望值和实际值是否相等,并使用Logger记录日志。

运行结果:

运行结果

5 综合练习

定义User类,封装account和password属性,提供getter/setter,重载构造方法,重写toString()方法

定义UserLogin类,封装User属性,提供getter/setter,并定义public boolean userLogin(User user);方法,判定某个用户能否登陆成功,指定账号为“admin”,密码为“111”

写配置文件,通过构造器注入创建一个User对象并传值,通过setter注入创建UserLogin对象并传值

写单元测试,测试某用户能否登陆成功

User类

packagecom.spring.ioc;publicclassUser{privateString account;privateString password;publicUser(){    }publicUser(String account, String password){this.account = account;this.password = password;    }publicStringgetAccount(){returnaccount;    }publicvoidsetAccount(String account){this.account = account;    }publicStringgetPassword(){returnpassword;    }publicvoidsetPassword(String password){this.password = password;    }@OverridepublicStringtoString(){return"User{"+"account='"+ account +'\''+", password='"+ password +'\''+'}';    }}

UserLogin类

packagecom.spring.ioc;publicclassUserLogin{privateUser user;publicUserLogin(){    }publicUserLogin(User user){this.user = user;    }publicUsergetUser(){returnuser;    }publicvoidsetUser(User user){this.user = user;    }publicbooleanuserLogin(User user){if("admin".equals(user.getAccount()) &&"123".equals(user.getPassword())) {returntrue;        }else{returnfalse;        }    }}

配置文件

单元测试类

packagecom.spring.ioc;importorg.junit.Test;importorg.junit.runner.RunWith;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.test.context.ContextConfiguration;importorg.springframework.test.context.junit4.SpringJUnit4ClassRunner;importstaticorg.junit.Assert.*;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = {"/applicationContext.xml"})publicclassUserLoginTest{@AutowiredprivateUser user;@AutowiredprivateUserLogin userLogin;@TestpublicvoiduserLogin(){        assertEquals(true, userLogin.userLogin(user));    }}

运行结果

运行结果

你可能感兴趣的:(day7 在Spring 5中使用JUnit单元测试)