pytest中fixture,

  pytest中fixture,

  本文主要介绍pytest的官方解读,一次请求多个夹具,多次请求夹具。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。

  00-1010 1.一个测试功能/夹具一次请求多个夹具。2.每个测试函数可以多次请求fixtures(返回值被缓存)。跟随节奏探索夹具的灵活性。

  

目录

 

  在测试功能和夹具功能中,每个请求不限于一个夹具。他们想要多少就有多少。

  下面是另一个简单的例子3360。

  导入pytest

  #排列

  @pytest.fixture

  定义first_entry():

  返回“a”

  #排列

  @pytest.fixture

  def second_entry():

  返回2

  #排列

  @pytest.fixture

  定义订单(第一条目,第二条目):

  #这是一个固定功能,还需要另外两个固定功能

  return[第一个条目,第二个条目]

  #排列

  @pytest.fixture

  def期望_列表():

  return [a ,2,3.0]

  定义测试字符串(顺序,预期列表):

  #这是一个要求2个不同夹具功能的测试功能。

  #行动

  订单.追加(3.0)

  #断言

  断言顺序==预期列表

  可以看出,在fixture函数顺序中,请求了另外两个fixture函数,即:first_entry和second_entry。

  在测试函数test_string中,请求了两个不同的fixture函数:order和expected_list。

  

一、一个测试函数/fixture一次请求多个fixture

 

  在同一个测试功能中,也可以多次请求夹具。但是,在这个测试函数中,pytest在第一次执行后不会再次执行fixture函数。

  如果fixture函数的第一次执行有返回值,返回值将被缓存。

  导入pytest

  #排列

  @pytest.fixture

  定义first_entry():

  返回“a”

  #排列

  @pytest.fixture

  定义订单():

  return []

  #行动

  @pytest.fixture

  定义append_first(order,first_entry):

  #第一次请求订单,返回一个列表[]

  #然后order的空列表加上first_entry的返回值,order就变成[a],缓存起来。

  退货单.追加(first_entry)

  def test _ string _ only(append _ first,order,first_entry):

  #在测试函数中,第二次请求order,但没有得到空列表[],得到缓存的[a]。

  #所以order==[first_entry]的断言其实是[a]==[a],测试通过。

  #断言

  断言顺序==[first_entry]

  从例子中可以看出:

  在fixture函数append_first中,第一次请求订单,返回并缓存一个list []。然后order.append(first_entry)在[]中加上first_entry的返回值,所以此时的顺序就变成[a]。最后,在测试函数test_string_only中,第二次请求order,但是没有得到空list [],得到的是缓存的[a]。这样,最终断言assert order==[first_entry]就会成功。相反,如果在测试函数中每次都请求相同的fixture,那么上面的测试函数将会失败。

  因为,这样一来,虽然append_first中的返回值仍然是[a],但是在test_string_only中,重新请求的是顺序,实际得到的是空列表[],所以最终断言会失败。

  以上是pytest对多夹具多请求的解读细节。有关pytest对fixtures请求的解释的更多信息,请关注盛行IT软件开发工作室的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: