gpt4 book ai didi

python - 具有功能范围且没有拆解代码的 fixture 有什么好处?

转载 作者:太空狗 更新时间:2023-10-29 23:57:28 25 4
gpt4 key购买 nike

没有拆解代码的(默认)功能范围 fixture 有什么优势?为什么不在测试开始时调用该函数?

比如写有什么好处:

@pytest.fixture
def smtp():
return smtplib.SMTP("smtp.gmail.com")

def test_ehlo(smtp):
response, msg = smtp.ehlo()
# ...

而不是简单地:

def create_smtp():
return smtplib.SMTP("smtp.gmail.com")

def test_ehlo():
smtp = create_smtp()
response, msg = smtp.ehlo()
# ...

我理解为什么在我们需要拆解代码时 fixture 很有用。我也理解为什么范围不是功能的固定装置是有用的:我们可能想在多个测试中重用相同的“外部”对象(以节省创建它所需的时间;或者甚至可能维护它的状态——尽管这看起来这是相当危险的,因为这会在单独的测试之间产生难以察觉的耦合。

最佳答案

我刚开始用的时候也有类似的疑问。这是我的经验:

  • fixture 可以设置为 autouse=True,即自动触发,这可能无法通过内联调用实现。这在某些情况下很有用。
  • fixtures 增加了可读性,至少对我来说是这样。查看测试的签名,可以找出哪些初始化是给定测试的先决条件。从这个意义上讲,它还有助于保持测试及其初始化的隔离。

关于python - 具有功能范围且没有拆解代码的 fixture 有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42308799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com