Luc*_*234 1 python selenium pytest
根据 Pytest 中的“https://docs.pytest.org/en/stable/getting-started.html”,当在类内对测试进行分组时,每个测试都有该类的唯一实例。让每个测试共享相同的类实例对于测试隔离非常不利,并且会导致不良的测试实践。这意味着什么?概述如下:test_class_demo 的内容。
class TestClassDemoInstance:
def test_one(self):
assert 0
def test_two(self):
assert 0
Run Code Online (Sandbox Code Playgroud)
假设您正在测试一个用户帐户系统,您可以在其中创建用户并更改密码。您需要拥有一个用户才能更改其密码,并且您不想重复自己,因此您可以天真地构建如下测试:
class TestUserService:
def test_create_user(self):
# Store user_id on self to reuse it in subsequent tests.
self.user_id = UserService.create_user("timmy")
assert UserService.get_user_id("timmy") == self.user_id
def test_set_password(self):
# Set the password of the user we created in the previous test.
UserService.set_password(self.user_id, "hunter2")
assert UserService.is_password_valid(self.user_id, "hunter2")
Run Code Online (Sandbox Code Playgroud)
但是,通过使用self将数据从一个测试用例传递到下一个测试用例,您产生了几个问题:
test_create_user,然后test_set_password。test_set_password。test_create_user失败,我们就无法再有意义地运行test_set_password。因此,为了防止这种设计,pytest 明智地决定每个测试都获得一个全新的测试类实例。
| 归档时间: |
|
| 查看次数: |
3139 次 |
| 最近记录: |