zoukankan      html  css  js  c++  java
  • TestMethodTest

    Junit 

    package org.junit.tests.running.methods;
    
    import static org.junit.Assert.assertEquals;
    import static org.junit.Assert.assertTrue;
    
    import java.util.Collections;
    import java.util.List;
    
    import junit.framework.JUnit4TestAdapter;
    import junit.framework.TestResult;
    import org.junit.After;
    import org.junit.AfterClass;
    import org.junit.Before;
    import org.junit.BeforeClass;
    import org.junit.Ignore;
    import org.junit.Test;
    import org.junit.runner.JUnitCore;
    import org.junit.runner.Result;
    import org.junit.runners.BlockJUnit4ClassRunner;
    import org.junit.runners.model.InitializationError;
    
    public class TestMethodTest {
    
        @SuppressWarnings("all")
        public static class EverythingWrong {
            private EverythingWrong() {
            }
    
            @BeforeClass
            public void notStaticBC() {
            }
    
            @BeforeClass
            static void notPublicBC() {
            }
    
            @BeforeClass
            public static int nonVoidBC() {
                return 0;
            }
    
            @BeforeClass
            public static void argumentsBC(int i) {
            }
    
            @BeforeClass
            public static void fineBC() {
            }
    
            @AfterClass
            public void notStaticAC() {
            }
    
            @AfterClass
            static void notPublicAC() {
            }
    
            @AfterClass
            public static int nonVoidAC() {
                return 0;
            }
    
            @AfterClass
            public static void argumentsAC(int i) {
            }
    
            @AfterClass
            public static void fineAC() {
            }
    
            @After
            public static void staticA() {
            }
    
            @After
            void notPublicA() {
            }
    
            @After
            public int nonVoidA() {
                return 0;
            }
    
            @After
            public void argumentsA(int i) {
            }
    
            @After
            public void fineA() {
            }
    
            @Before
            public static void staticB() {
            }
    
            @Before
            void notPublicB() {
            }
    
            @Before
            public int nonVoidB() {
                return 0;
            }
    
            @Before
            public void argumentsB(int i) {
            }
    
            @Before
            public void fineB() {
            }
    
            @Test
            public static void staticT() {
            }
    
            @Test
            void notPublicT() {
            }
    
            @Test
            public int nonVoidT() {
                return 0;
            }
    
            @Test
            public void argumentsT(int i) {
            }
    
            @Test
            public void fineT() {
            }
        }
    
        @Test
        public void testFailures() throws Exception {
            List<Throwable> problems = validateAllMethods(EverythingWrong.class);
            int errorCount = 1 + 4 * 5; // missing constructor plus four invalid methods for each annotation */
            assertEquals(errorCount, problems.size());
        }
    
        static public class SuperWrong {
            @Test
            void notPublic() {
            }
        }
    
        static public class SubWrong extends SuperWrong {
            @Test
            public void justFine() {
            }
        }
    
        @Test
        public void validateInheritedMethods() throws Exception {
            List<Throwable> problems = validateAllMethods(SubWrong.class);
            assertEquals(1, problems.size());
        }
    
        static public class SubShadows extends SuperWrong {
            @Override
            @Test
            public void notPublic() {
            }
        }
    
        @Test
        public void dontValidateShadowedMethods() throws Exception {
            List<Throwable> problems = validateAllMethods(SubShadows.class);
            assertTrue(problems.isEmpty());
        }
    
        private List<Throwable> validateAllMethods(Class<?> clazz) {
            try {
                new BlockJUnit4ClassRunner(clazz);
            } catch (InitializationError e) {
                return e.getCauses();
            }
            return Collections.emptyList();
        }
    
        static public class IgnoredTest {
            @Test
            public void valid() {
            }
    
            @Ignore
            @Test
            public void ignored() {
            }
    
            @Ignore("For testing purposes")
            @Test
            public void withReason() {
            }
        }
    
        @Test
        public void ignoreRunner() {
            JUnitCore runner = new JUnitCore();
            Result result = runner.run(IgnoredTest.class);
            assertEquals(2, result.getIgnoreCount());
            assertEquals(1, result.getRunCount());
        }
    
        @Test
        public void compatibility() {
            TestResult result = new TestResult();
            new JUnit4TestAdapter(IgnoredTest.class).run(result);
            assertEquals(1, result.runCount());
        }
    
        public static class Confused {
            @Test
            public void a(Object b) {
            }
    
            @Test
            public void a() {
            }
        }
    
        @Test(expected = InitializationError.class)
        public void overloaded() throws InitializationError {
            new BlockJUnit4ClassRunner(Confused.class);
        }
    
        public static class ConstructorParameter {
            public ConstructorParameter(Object something) {
            }
    
            @Test
            public void a() {
            }
        }
    
        @Test(expected = InitializationError.class)
        public void constructorParameter() throws InitializationError {
            new BlockJUnit4ClassRunner(ConstructorParameter.class);
        }
    
        public static class OnlyTestIsIgnored {
            @Ignore
            @Test
            public void ignored() {
            }
        }
    
        @Test
        public void onlyIgnoredMethodsIsStillFineTestClass() {
            Result result = JUnitCore.runClasses(OnlyTestIsIgnored.class);
            assertEquals(0, result.getFailureCount());
            assertEquals(1, result.getIgnoreCount());
        }
    }

     参考:Junit  官方;

  • 相关阅读:
    结对项目:四则运算
    Word Count(C语言)
    自我介绍+软工5问
    如何在博客园中使用markdown
    如何设计一门语言(九)——类型
    如何设计一门语言(八)——异步编程和CPS变换
    如何设计一门语言(七)——闭包、lambda和interface
    时隔多年我又再一次体验了一把跟大神聊天的感觉
    20199107 2019-2020-2 《网络攻防实践》第4周作业
    20199107 2019-2020-2 《网络攻防实践》第3周作业
  • 原文地址:https://www.cnblogs.com/WLCYSYS/p/12849669.html
Copyright © 2011-2022 走看看