按书上学写测试pytest

慢慢的,这块知识也补好吧。

系统的学习框架,具体的细节,可以边百度边实现。

test_three.py 

'''Test the Task data type.'''

from collections import namedtuple

Task = namedtuple('Task', ['summary', 'owner', 'done', 'id'])
Task.__new__.__defaults__=(None, None, False, None)

def test_defaults():
    t1 = Task()
    t2 = Task(None, None, False, None)
    assert t1 == t2

def test_member_access():
    t = Task('buy milk', 'brian')
    assert t.summary == 'buy milk'
    assert t.owner == 'brian'
    assert (t.done, t.id) == (False, None)
'''Test the Task data type'''

from collections import namedtuple

Task = namedtuple('Task', ['summary', 'owner', 'done', 'id'])
Task.__new__.__defaults__=(None, None, False, None)

def test_asdict():
    t_task = Task('do something', 'okken', True, 21)
    t_dict = t_task._asdict()
    expected = {'summary': 'do something',
        'owner': 'okken',
        'done': True,
        'id': 21}
    assert t_dict == expected

def test_replace():
    t_before = Task('finish book', 'brian', False)
    t_after = t_before._replace(id = 10, done = True)
    t_expected = Task('finish book', 'brian', True, 10)
    assert t_after == t_expected

pytest中编UI测试的基类可以通过使用`pytest`提供的fixture和hook机制实现。下面是一个示例的UI测试基类的代码: ```python import pytest from selenium import webdriver # 定义UI测试的基类 @pytest.fixture(scope="class") def base_ui_test(request): # 在测试类开始时执行的操作 driver = webdriver.Chrome() # 实例化WebDriver,这里以Chrome为例 request.cls.driver = driver # 将WebDriver对象保存到测试类中 yield # 在测试类结束时执行的操作 driver.quit() # 定义一个UI测试的基类 @pytest.mark.usefixtures("base_ui_test") class BaseUITest: pass ``` 在上述代码中,我们使用了`pytest.fixture`装饰器定义了一个作用域为`class`的fixture函数`base_ui_test`。这个fixture函数将在每个测试类开始前执行一次,并在测试类结束后执行一次。 然后,我们使用`@pytest.mark.usefixtures`装饰器将定义好的fixture函数应用到我们的基类`BaseUITest`上。 接下来,你可以创建其他UI测试类,并继承自`BaseUITest`基类。这样,每个继承了`BaseUITest`的测试类都会自动拥有一个`driver`属性,可以在测试方法中使用该属性进行UI操作。 ```python class TestLoginPage(BaseUITest): def test_login_successful(self): # 使用self.driver进行页面操作和断言 pass def test_login_failed(self): # 使用self.driver进行页面操作和断言 pass ``` 通过这种方式,你可以在UI测试中共享`driver`对象,并在每个测试类开始前和结束后执行一些操作,例如启动和关闭浏览器。这样可以提高测试代码的可维护性和复用性。当然,你可以根据实际需求进行定制和扩展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值