千家信息网

如何进行Junt4动态代码测试

发表于:2025-02-08 作者:千家信息网编辑
千家信息网最后更新 2025年02月08日,本篇文章为大家展示了如何进行Junt4动态代码测试,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Junt4 动态代码测试 方便与java在线教程编写Liste
千家信息网最后更新 2025年02月08日如何进行Junt4动态代码测试

本篇文章为大家展示了如何进行Junt4动态代码测试,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

Junt4 动态代码测试 方便与java在线教程编写

Listener.java

import java.util.HashMap;import org.junit.runner.Description;import org.junit.runner.Result;import org.junit.runner.notification.Failure;import org.junit.runner.notification.RunListener;public class Listener extends RunListener {public static long begin_mill;public static long end_mill;public static long test_begin_mill;public static long test_end_mill;public static HashMap test_map;@Overridepublic void testAssumptionFailure(Failure failure) {// TODO Auto-generated method stubsuper.testAssumptionFailure(failure);}@Overridepublic void testFailure(Failure failure) throws Exception {// TODO Auto-generated method stubsuper.testFailure(failure);Description description = failure.getDescription();TestDescription text_doc = description.getAnnotation(TestDescription.class);String name = description.getMethodName();System.out.println(this);test_map.put(name, false);// System.out.println("test " + name + "( " + text_doc.value() + " )" +"is failure");}@Overridepublic void testFinished(Description description) throws Exception {// TODO Auto-generated method stubsuper.testFinished(description);String name = description.getMethodName();TestDescription text_doc = description.getAnnotation(TestDescription.class);Boolean value = test_map.get(name);if(value == null){test_map.put(name, true);}System.out.println(this);// System.out.println("test " + name + "( " + text_doc.value() + " )" +"is finished");}@Overridepublic void testIgnored(Description description) throws Exception {// TODO Auto-generated method stubsuper.testIgnored(description);}@Overridepublic void testRunFinished(Result result) throws Exception {// TODO Auto-generated method stubsuper.testRunFinished(result);// System.out.println("all time " + (end_mill - begin_mill));}@Overridepublic void testRunStarted(Description description) throws Exception {// TODO Auto-generated method stubsuper.testRunStarted(description);begin_mill = System.currentTimeMillis();test_map = new HashMap();}@Overridepublic void testStarted(Description description) throws Exception {// TODO Auto-generated method stubsuper.testStarted(description);String name = description.getMethodName();// System.out.println("test " + name + "is started");}}

TestDescription.java

import static java.lang.annotation.ElementType.METHOD;import static java.lang.annotation.RetentionPolicy.RUNTIME;import java.lang.annotation.Retention;import java.lang.annotation.Target;@Target({METHOD})@Retention(RUNTIME)public @interface TestDescription {String value();}

rule:
Practice.java

public class Practice {public int sum(int a,int b){return a + b;}}PracticeTest.javaimport org.junit.Assert;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.JUnit4;@RunWith(JUnit4.class)public class PracticeTest {@Test@TestDescription("sum(1, 2) -> 3")public void test1() {Practice a = new Practice();Assert.assertEquals(3,a.sum(1, 2));}@Test@TestDescription("sum(1, 3) -> 4")public void test2() {Practice a = new Practice();Assert.assertEquals(4,a.sum(1, 3));}@Test@TestDescription("sum(2, 2) -> 4")public void test3() {Practice a = new Practice();Assert.assertEquals(4,a.sum(2, 2));}@Test@TestDescription("sum(2, 3) -> 4")public void test4() {Practice a = new Practice();Assert.assertEquals(4,a.sum(2, 3));}}

Main.java

import java.util.Iterator;import java.util.Set;import org.junit.runner.JUnitCore;import org.junit.runner.Result;public class Main {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubJUnitCore core = new org.junit.runner.JUnitCore();core.addListener(new Listener());Result result = core.run(PracticeTest.class);Set set = Listener.test_map.keySet();Iterator it = set.iterator();while(it.hasNext()){String name = it.next();boolean is_success = Listener.test_map.get(name);String is_success_str = is_success ? "success" : "failure"; System.out.println("test " + name + " : " + is_success_str );}System.out.println(result.wasSuccessful());}}

上述内容就是如何进行Junt4动态代码测试,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

0