zoukankan      html  css  js  c++  java
  • Selenium 2自动化测试实战28(断言方法)

    一、断言方法

    执行用例的过程中,最终用例是否执行通过,是通过判断测试得到的实例结果与预期结果是否相等决定的。unittest框架的TestCase类提供下面这些方法用于测试结果的判断。

     

     

    -assertEqual(first,second,msg=None)
    断言第一个参数和第二个参数是否相等,如果不相等则测试失败。msg为可选参数,用于定义测试失败时打印的信息。
    
    #test.py
    #coding:utf-8
    
    from Demo1 import Count
    import unittest
    
    #测试两个整数相加
    class TestCount(unittest.TestCase):
    
        def setUp(self):
            number=input("please input your number:")
            self.number= int(number)
    
    
        def test_case(self):
            self.assertEqual(self.number,10,msg='your input number is not 10!~')
    
        def tearDown(self):
            pass
    
    if __name__=='__main__':
        unittest.main()
    

    注意:此例需使用python自带的IDLE运行,因为执行过程中需要用户输入

    在setUp()方法中要求用户输入一个数,在test_case()中通过assertEqual()比较输入的数据是否等于10,如果不相等则输出msg中定义的提示信息。执行结果如下:

     

     

    从执行结果看到,输入看一个12,显然不等于10,msg所定义的提示信息告诉我们“your input number is not 10”。

    -assertNotEqual(first,second,msg=None)
    assertNotEqual()与assertEqual()相反,他用于断言第一个参数与第二个参数是否不相等,如果相等则测试失败。
    
    -assertTrue(express,msg=None)
    -assertFalse(express,msg=None)
    测试表达式是true(或False)
    

      

    下面这个例子是判断一个数是否为质数,所谓的质数(素数)是指只能被1和他本身整除的数

    #count.py
    #coding:utf-8
    
    #判断质数
    def is_prime(n):
        if n<=1:
            return False
        
        for i in range(2, n):
            if n % i == 0:
                return False
    
        else:
            return True

    创建is_prime()函数用于实现对质数的判断。当得到一个数字n后,首先判断它是否小于或等于1,如果小于或等于1,则直接返回False;如果大于1,若能整除2到其自身之间的任意一个数,则不为质数,返回False,否则返回True;

    #test.py
    #coding:utf-8
    
    from Demo1 import is_prime
    import unittest
    
    class TestCount(unittest.TestCase):
    
        def setUp(self):
            number=input("please input your number:")
            self.number= int(number)
    
    
        def test_case(self):
            self.assertTrue(is_prime(self.number),"the number is not prime")
    
    
        def tearDown(self):
            pass
    
    if __name__=='__main__':
        unittest.main()

    在调用is_prime()函数时分别传不同的值来执行测试用例,assertTrue()断言得到的结果为True(或False)

    -assertIn(first,second,msg=None)
    -assertNotIn(first,second,msg=None)
    断言第一个参数是否在第二个参数中,反过来讲,第二个参数是否包含第一个参数。  
    #test.py
    #coding:utf-8
    import unittest
    
    class Test(unittest.TestCase):
    
        def setUp(self):
            self.a=input("please input string a:")
            self.b=input("please input string b:")
    
        def test_string(self):
            self.assertIn(self.a,self.b,msg='a is not in b')
    
        def tearDown(self):
            pass
    
    if __name__=="__main__":
        unittest.main()

     

     这个很好理解,定义字符串a为“hello”,b为“hello world”,通过assertIn判断b是否包含a,如果不包含则打印msg定义的信息。

    -assertIs(first,second,msg=None)
    -assertIsNot(first,second,msg=None)
    断言第一个参数和第二个参数是否为同一对象。
    
    -assertIsNone(expr,msg=None)
    -assertIsNotNone(expr,msg=None)
    断言表达式是否为None对象。
    
    -assertIsInstance(obj,cls,msg=None)
    -assertNotIsInstance(obj,cls,msg=None)
    断言obj是否为cls的一个实例。
    unittest中还提供了其他检查比较的方法,因为不常用,所以不再一一介绍。

      

  • 相关阅读:
    spring+mybatis+druid+xml
    springboot run(),bean注册
    linux命令之cat
    linux命令之more
    linux中配置maven环境
    linux中配置Java环境
    linux命令之nohup
    在Eclipse中创建Maven多模块工程的例子
    MINA之心跳协议运用
    Java动态代理
  • 原文地址:https://www.cnblogs.com/Rita-LJ/p/11772437.html
Copyright © 2011-2022 走看看