IDEA Junit 学习
Junit -概述 : 所谓单元测试是测试应用程序的功能是否能够按需要正常运行,并且确保是在开发人员的水平上,单元测试生成图片。单元测试是一个对单一实体(类或方法)的测试。
1.如何在idea中集成junit?
2.作为后端开发的童鞋们需要掌握那些是有助于我们开发呢?
如何在idea中使用junit
IDEA编辑器自带junit插件,如若没有,可以网上下载junit压缩包,解压后放入本地仓库即可。
法1:file—>settings—>plugins
法2:下载junit压缩包,解压后放置本地仓库即可。新建maven并在pom.xml文件中引入相关依赖。(注意跟自己下载的版本号一致)
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
</dependencies>
作为后端开发的童鞋们需要掌握那些是有助于我们开发呢
一.JUnit 中的重要的 API
| 序号 | 类的名称 | 类的功能 |
| 1 | Assert | assert 方法的集合 |
| 2 |TestCase | 一个定义了运行多重测试的固定装置|
| 3 |TestResult| TestResult 集合了执行测试样例的所有结果|
| 4 |TestSuite | TestSuite 是测试的集合|
如若不知,可自行百度了解,相关类的常用方法即可。
二.基本用法
1.创建一个名为 MessageUtil.java 的类
public class MessageUtil {
private String message;
//Constructor
//@param message to be printed
public MessageUtil(String message){
this.message = message;
}
// prints the message
public String printMessage(){
System.out.println(message);
return message;
}
}
2.创建TestJunit类
public class TestJunit {
String message = "Hello World";
MessageUtil messageUtil = new MessageUtil(message);
@Test
public void testPrintMessage() {
assertEquals(message,messageUtil.printMessage());
}
}
注意添加@Test注解
3.创建 Test Runner 类
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestJunit.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
三.JUnit - 执行过程
1.创建一个 java 类文件命名为 JunitAnnotation.java类
public class ExecutionProcedureJunit {
//execute only once, in the starting
@BeforeClass
public static void beforeClass() {
System.out.println("in before class");
}
//execute only once, in the end
@AfterClass
public static void afterClass() {
System.out.println("in after class");
}
//execute for each test, before executing test
@Before
public void before() {
System.out.println("in before");
}
//execute for each test, after executing test
@After
public void after() {
System.out.println("in after");
}
//test case 1
@Test
public void testCase1() {
System.out.println("in test case 1");
}
//test case 2
@Test
public void testCase2() {
System.out.println("in test case 2");
}
}
2.创建一个 java 类文件 TestRunner.java 来执行注释程序
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(ExecutionProcedureJunit.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
四.JUnit - 异常测试
1.创建一个叫做 MessageUtil.java 的 java 类
public class MessageUtil {
private String message;
//Constructor
//@param message to be printed
public MessageUtil(String message){
this.message = message;
}
// prints the message
public void printMessage(){
System.out.println(message);
int a =0;
int b = 1/a;
}
// add "Hi!" to the message
public String salutationMessage(){
message = "Hi!" + message;
System.out.println(message);
return message;
}
}
2.创建一个TestJunit.java 的 java 测试类,添加需要的异常 ArithmeticException。
public class TestJunit {
String message = "Robert";
MessageUtil messageUtil = new MessageUtil(message);
@Test(expected = ArithmeticException.class)
public void testPrintMessage() {
System.out.println("Inside testPrintMessage()");
messageUtil.printMessage();
}
@Test
public void testSalutationMessage() {
System.out.println("Inside testSalutationMessage()");
message = "Hi!" + "Robert";
assertEquals(message,messageUtil.salutationMessage());
}
}
3.创建一个文件名为 TestJunit.java 的 java 类
public class TestRunner {
public static void main(String[] args) {
Result result = JUnitCore.runClasses(TestJunit.class);
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}