Pytest的内置fixture(七)

  在Pytest的测试框架中,也是内置了fixture的功能,这些内置的fixture在特定的测试场景下能够提高测试的效率,另外一个好处是它是内置的fixture,就不需要单独再写fixture了。就像Python语言中内置的函数一样,直接拿来调用实现想要实现的功能就可以了。下面具体来看这些内置的fixture它的含义以及在测试场景下的案例应用。

一、tmpdir

    内置的fixture负责在测试开始前创建文件,和测试结束后删除临时文件。这样的测试场景也是比较常见的,比如测试过程中需要存放一个临时数据,那么既然是存放临时数据就需要临时目录,测试结束后临时文件也删除。就以一个登录的token为案例来演示它的应用,熟悉接口测试的同学都知道,token是登录成功后服务端返回给客户端随机的一个密钥,那么客户端下次请求服务端的时候,给服务端的token与服务端返回给客户端的一致,如果不一致,客户端就会返回到登录的页面,要起登录,见如下的案例测试代码:

import  pytest


def login(username,password):

    if username=='wuya' and password =='admin':

        return 'dfghjkerty45fdsgudf'

def order(token):

    if token=='dfghjkerty45fdsgudf':

        return True

    else:

        print('请登录系统')



def test_order_tmpdir(tmpdir):

    token=tmpdir.join('token.txt')

    token.write(login('wuya','admin'))

    assert  order(token.read())==True

具体看测试的函数test_order_tmpdir(),首先创建一个临时文件,往临时文件写入token,然后断言验证,order()函数请求,它的参数与login()函数返回的参数一致,所以结果是True,当然这地方还可以来一个失败的测试场景,也就是order()的token与login()的token不一致情况,见完善后的源码:

import  pytest


de

你可能感兴趣的:(Pytest的内置fixture(七))