• Junit单元测试的基本用法


      JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。

    junit3和junit4区别

    1.在junit3中,如果某个类需要测试类,则必须继承TesrCase,如果某个方法需要是测试方法,必须让这个方法通过TestXX开头,在junit3中如果希望某个方法在运行之前运行某个初始化方法,这个方法的名称必须是setUp,如果希望在某个测试方法运行之后运行某个释放资源的方法,这个方法的名称必须是TearDown

    2.在junit4中 ,一个pojo类就是一个测试类,测试方法通过@Test来标识,初始化方法通过@Before来标识,释放资源的方法通过@After来标识.但是为力junit4中可以在junit3中使用,习惯于把初始方法命名为setUp,释放资源的方法命名为TearDown,测试方法也同样以test开头

    eclipse中如何创建Junit

    1、导入junit 4.12 的依赖包

    2、创建junit类

      

       

       

    JUnit的一些注意事项:

    • 测试方法必须使用@Test修饰
    • 测试方法必须使用public void进行修饰,不能带参数
    • 一般使用单元测试会新建一个test目录存放测试代码,在生产部署的时候只需要将test目录下代码删除即可
    • 测试代码的包应该和被测试代码包结构保持一致
    • 测试单元中的每个方法必须可以独立测试,方法间不能有任何依赖
    • 测试类一般使用Test作为类名的后缀
    • 测试方法使一般用test作为方法名的前缀

    测试失败说明:

    • Failure:一般是由于测试结果和预期结果不一致引发的,表示测试的这个点发现了问题
    • error:是由代码异常引起的,它可以产生于测试代码本身的错误,也可以是被测试代码中隐藏的bug

    一些常用注解

    • @Test:将一个普通方法修饰成一个测试方法
      • @Test(excepted=xx.class): xx.class表示异常类,表示测试的方法抛出此异常时,认为是正常的测试通过的
      • @Test(timeout=毫秒数) :测试方法执行时间是否符合预期
    • @BeforeClass: 会在所有的方法执行前被执行,static方法
    • @AfterClass:会在所有的方法执行之后进行执行,static方法
    • @Before:会在每一个测试方法被运行前执行一次
    • @After:会在每一个测试方法运行后被执行一次
    • @Ignore:所修饰的测试方法会被测试运行器忽略
    • @RunWith:可以更改测试运行器org.junit.runner.Runner
    • Parameters:参数化注解

    转载:https://www.cnblogs.com/qiyexue/p/6822791.html

    Junit的各种断言

     其中方法:

      public static void assertEquals(Object[] expected, Object[] actual)
      public static void assertEquals(String message, Object[] expected, Object[] actual)

    是JUnit 4 为比较数组添加的两个 assert() 方法.这两个方法以最直接的方式比较数组:如果数组长度相同,且每个对应的元素相同,则两个数组相等,否则不相等。数组为空的情况也作了考虑。 .

    常用断言介绍:

      1. assertEquals([String message],Object target,Object result)  target与result不相等,中断测试方法,输出message
        assertEquals(a, b) 测试a是否等于b(a和b是原始类型数值(primitive value)或者必须为实现比较而具有equal方法)
        assertEquals断言两个对象相等,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
          例如计算器加法功能的测试可以使用一下验证:
          Assert.assertEquals(0,result);

      2. assertTrue/False([String message],Boolean result) Result为 false/true,中断测试方法,输出message
        assertTrue 断言条件为真,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
        assertFalse 断言条件为假,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
        assertFalse(a) 测试a是否为false(假),a是一个Boolean数值;

      3. assertNotNull/Null([String message],Obejct result )  Restult == null/result!=null,中断测试方法,输出message
        assertNull   断言对象为null,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
        assertNotNull 断言对象不为null,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
        assertNotNull(a) 测试a是否非空,a是一个对象或者null;

      4.assertSame/NotSame(Object target,Object result) Traget与result 不指向/指向 同一内存地址(实例),中断测试方法,输出message
        assertSame 断言两个引用指向同一个对象,若不满足,方法抛出带有相应信息AssertionFailedError异常。
        assertNotSame 断言两个引用指向不同对象,若不满足,方法抛出带有相应信息的AssertionFailedError异常。
        assertNotSame(a, b) 测试a和b是否没有都引用同一个对象;

      5. fail([String message])  中断测试方法,输出message
        Fail  让测试失败,并给出指定信息

    转载:https://www.iteye.com/blog/ryxxlong-716428

    代码:

    方法类:

    public class Calc {
        //相加
        public int add(int a,int b) {
            return a+b;
        }
        //相乘
        public int ride(int a,int b) {
            return a*b;
        }
    }

     junit测试类:

    public class TestCalc {
        
        private Calc c;
        @Before
        public void setUp() throws Exception {
            c = new Calc();
            System.out.println("直接加载");
        }
    
        @After
        public void tearDown() throws Exception {
            System.out.println("直接结束了");
        }
        @Test
        public void testAdd() {
            int sum = c.add(2, 2);
            //断言值等于4
            Assert.assertEquals(4, sum);
        }
        @Test
        public void testRide() {
            int sum = c.ride(2, 4);
            //断言值不等于8
            Assert.assertNotEquals(8, sum);
        }
  • 相关阅读:
    【python进阶】哈希算法(Hash)
    【数据库】MongoDB操作命令
    【数据库】MongoDB安装&配置
    【python基础】元组方法汇总
    【python基础】集合方法汇总
    滴水穿石-04Eclipse中常用的快捷键
    滴水穿石-03一道面试题引发的思考
    滴水穿石-02制作说明文档
    滴水穿石-01JAVA和C#的区别
    步步为营101-同一个PCode下重复的OrderNumber重新排序
  • 原文地址:https://www.cnblogs.com/64Byte/p/13068007.html
Copyright © 2020-2023  润新知