gpt4 book ai didi

python - 我什么时候应该使用 setUpClass 什么时候使用 __init__?

转载 作者:太空狗 更新时间:2023-10-29 18:26:38 25 4
gpt4 key购买 nike

这两种方法之间是否存在任何运行时逻辑差异?或者有什么行为差异?
如果不是,那么我是否应该忘记 __init__ 并仅使用 setUpClass 来考虑单元测试类,例如命名空间而不是语言 OOP 范例?

最佳答案

两者完全不同。

setUpClass 是一个类方法,所以它只能让您设置 class 属性。

它们也在不同的时间被调用。测试运行器为每个测试 创建一个新实例。如果您的测试类包含 5 个测试方法,则会创建 5 个实例并调用 __init__ 5 次。

setUpClass 通常只被调用一次。 (如果你打乱测试顺序,不同类的测试方法混杂在一起,setUpClass 可以调用多次,使用 tearDownClass 适当清理,这不会是一个问题)。

此外,测试运行器通常会在测试运行开始时创建所有测试实例;这通常很便宜,因为测试实例不保存(很多)状态,所以不会占用太多内存。

根据经验,您根本不应该使用__init__。使用 setUpClass 创建在所有测试之间共享的状态,并使用 setUp 创建每个测试的状态。 setUp 在测试运行之前调用,因此您可以避免在测试需要之前建立大量内存密集型状态,而不是之前。

关于python - 我什么时候应该使用 setUpClass 什么时候使用 __init__?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18056464/

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