完成测试用例,判断姓名列表是否有输入的用户姓名 1、使用测试用例,完成执行测试 2、使用测试套件,添加测试用例,完成执行测试
时间: 2024-05-08 22:21:12 浏览: 10
假设我们有一个名为`UserList`的类,其中包含一个列表`names`,存储了已知的用户姓名。我们的测试目标是判断输入的用户姓名是否在`names`列表中。
首先,我们需要编写一个测试用例来测试这个功能。我们可以使用Python自带的unittest框架来编写测试用例。下面是一个示例:
```python
import unittest
class TestUserList(unittest.TestCase):
def setUp(self):
self.userlist = UserList()
def test_username_in_list(self):
self.userlist.names = ["Alice", "Bob", "Charlie"]
username = "Bob"
self.assertTrue(self.userlist.is_username_in_list(username))
def test_username_not_in_list(self):
self.userlist.names = ["Alice", "Bob", "Charlie"]
username = "David"
self.assertFalse(self.userlist.is_username_in_list(username))
```
在这个测试用例中,我们首先在`setUp`方法中创建了一个`UserList`的实例`userlist`,以便在每个测试用例中共享使用。然后我们编写了两个测试用例:`test_username_in_list`和`test_username_not_in_list`。分别测试了用户名在列表中和不在列表中的情况。
接下来,我们可以将这个测试用例添加到测试套件中进行执行。测试套件可以让我们方便地一次执行多个测试用例。下面是一个示例:
```python
import unittest
class TestUserList(unittest.TestCase):
def setUp(self):
self.userlist = UserList()
def test_username_in_list(self):
self.userlist.names = ["Alice", "Bob", "Charlie"]
username = "Bob"
self.assertTrue(self.userlist.is_username_in_list(username))
def test_username_not_in_list(self):
self.userlist.names = ["Alice", "Bob", "Charlie"]
username = "David"
self.assertFalse(self.userlist.is_username_in_list(username))
if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTest(TestUserList("test_username_in_list"))
suite.addTest(TestUserList("test_username_not_in_list"))
runner = unittest.TextTestRunner()
runner.run(suite)
```
在这个测试套件中,我们首先导入了unittest模块,然后创建了一个`TestUserList`的实例。然后我们将测试用例`test_username_in_list`和`test_username_not_in_list`添加到测试套件中。最后,我们创建了一个`TextTestRunner`的实例,并使用`runner.run(suite)`方法执行测试套件。
如果所有测试用例都通过,我们将会在控制台看到以下输出:
```
..
----------------------------------------------------------------------
Ran 2 tests in 0.000s
OK
```
其中,`..`表示两个测试用例都通过了,`Ran 2 tests`表示总共运行了2个测试用例,`OK`表示所有测试用例都通过了。
如果有任何一个测试用例失败了,我们将会在控制台看到失败的详细信息,例如:
```
F.
======================================================================
FAIL: test_username_in_list (__main__.TestUserList)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test.py", line 10, in test_username_in_list
self.assertTrue(self.userlist.is_username_in_list(username))
AssertionError: False is not true
----------------------------------------------------------------------
Ran 2 tests in 0.000s
FAILED (failures=1)
```
其中,`F.`表示有一个测试用例失败了,`FAIL: test_username_in_list`表示失败的测试用例名字,`AssertionError`表示断言失败了,`False is not true`表示实际结果是False,但期望的结果是True。