self.assert
时间: 2024-01-16 20:04:23 浏览: 31
self.assert是Python中unittest.TestCase类中的一个断言方法,用于判断测试结果是否符合预期。如果测试结果不符合预期,则会抛出AssertionError异常。常用的self.assert方法有:
1. self.assertEqual(a, b):判断a是否等于b;
2. self.assertNotEqual(a, b):判断a是否不等于b;
3. self.assertTrue(x):判断x是否为True;
4. self.assertFalse(x):判断x是否为False;
5. self.assertIn(a, b):判断a是否在b中;
6. self.assertNotIn(a, b):判断a是否不在b中;
7. self.assertIs(a, b):判断a是否和b是同一个对象;
8. self.assertIsNot(a, b):判断a是否和b不是同一个对象;
9. self.assertIsNone(x):判断x是否为None;
10. self.assertIsNotNone(x):判断x是否不为None。
在引用中的代码中,使用了self.assertEqual和self.assertIn方法进行测试。其中,self.assertEqual用于判断a是否等于b,self.assertIn用于判断a是否在b中。
相关问题
self.assert_equal
`self.assert_equal()`是一个unittest模块中的断言方法,用于比较两个值是否相等。如果两个值不相等,该方法会抛出一个AssertionError异常,测试用例会被标记为失败。
使用该方法的一般语法为:
```
self.assertEqual(value1, value2, msg=None)
```
其中,`value1`和`value2`为需要比较的两个值,`msg`是一个可选参数,用于在测试结果中输出一条自定义的错误信息。
例如,下面的代码用于测试一个函数`add()`是否正确计算两个数字的和:
```
import unittest
def add(a, b):
return a + b
class TestAdd(unittest.TestCase):
def test_add(self):
self.assertEqual(add(1, 2), 3)
self.assertEqual(add(0, 0), 0)
self.assertEqual(add(-1, 1), 0)
if __name__ == '__main__':
unittest.main()
```
在上述代码中,`test_add()`方法内部使用了`self.assertEqual()`方法来比较`add()`函数计算的结果和预期结果是否相等。如果有任何一个比较不相等,`self.assertEqual()`方法会抛出一个异常,测试用例会被标记为失败。如果所有的比较都相等,测试用例会被标记为成功。
class LoginSuccess(unittest.TestCase): # def __init__(self, login_page_admin, index_page, login_page): # self.login_page_admin = login_page_admin # self.index_page = index_page # self.login_page = login_page # # self.driver = driver def __init__(self, login_type, account, password): super().__init__() self.login_type = login_type self.account = account self.password = password self.login = login_page.LoginPage.login self.get_success_msg = index_page.IndexPage.get_success_msg self.login_admin = login_page.LoginPageAdmin.login_admin self.get_success_msg_admin = index_page.IndexPage.get_success_msg def login_success(self, login_type=None, account=None, password=None): self.login(login_type='mail', account='10089@027168.com', password='admin123@12') result = None result = self.get_success_msg() # 3.比对断言结果 response = self.assertIn('用户中心', result) my_log.info('客户端, 登录成功!') return response # login_success(login_type='mail', account='10089@027168.com', password='admin123@12') def login_admin_success(self,account=None, password=None): self.login_admin(account='21012175', password='hyx@123123') result = None result = self.get_success_msg_admin() # 3.比对断言结果 response = self.assertIn('21012175', result) my_log.info('运营端, 登录成功!') return response LoginSuccess.login_success(login_type='mail', account='10089@027168.com', password='admin123@12')
这段代码看起来像是 Python 中的单元测试代码,其中包含了一个继承自 `unittest.TestCase` 的测试类 `LoginSuccess`。这个测试类中定义了两个方法 `login_success` 和 `login_admin_success`,用于测试登录功能是否成功。
在 `__init__` 方法中,定义了三个实例变量 `login_type`、`account` 和 `password`,分别表示登录类型、账号和密码。在 `login_success` 方法中,通过调用 `login_page.LoginPage.login` 方法进行登录,并使用 `index_page.IndexPage.get_success_msg` 方法获取登录成功后的提示信息,然后使用 `assertIn` 方法进行断言,判断返回的提示信息是否包含了字符串 `'用户中心'`。
在 `login_admin_success` 方法中,同样使用 `login_page.LoginPageAdmin.login_admin` 方法进行运营端的登录,并使用 `index_page.IndexPage.get_success_msg_admin` 方法获取登录成功后的提示信息,然后同样使用 `assertIn` 方法进行断言,判断返回的提示信息是否包含了字符串 `'21012175'`。
最后,通过调用 `LoginSuccess.login_success` 方法进行测试。该方法接受三个参数 `login_type`、`account` 和 `password`,分别表示登录类型、账号和密码,但是在实际调用时这些参数的值被固定死了,并没有使用传入的参数值。因此,需要修改该方法的实现,使其能够接受传入的参数,并使用传入的参数值进行测试。