gpt4 book ai didi

python - python单元测试中setUp/tearDown的顺序是什么?

转载 作者:行者123 更新时间:2023-12-01 09:54:07 25 4
gpt4 key购买 nike

我对 python 中的基本单元测试方法的理解存在差异。鉴于以下测试文件:

import unittest, sys


class TestStringMethods(unittest.TestCase):

def setUp(self):
self.mystring = "example string"

def tearDown(self):
del self.mystring

def test_upper(self):
self.assertEqual('foo'.upper(), 'FOO')

def test_isupper(self):
self.assertTrue('FOO'.isupper())
self.assertFalse('Foo'.isupper())

def test_split(self):
s = 'hello world'
self.assertEqual(s.split(), ['hello', 'world'])
with self.assertRaises(TypeError):
s.split(2)

我的理解基于我所阅读的内容(“TestCase 中名为 setUp 的方法在每个测试方法之前自动运行。”、http://gettingstartedwithdjango.com/en/lessons/testing-microblog/#toc1 等)我解释事件的顺序如下:

1. set up self.mystring
2. run test_upper
3. tear down self.mystring

4. set up self.mystring
5. run test_isupper
6. tear down self.mystring

7. set up self.mystring
8. run test_split
9. tear down self.mystring

我的同事将文档解释为 unittest 的工作方式如下:

1. set up self.mystring
2. run test_upper
3. run test_isupper
4. run test_split
5. tear down self.mystring

这是一个非常重要的区别,哪个是正确的?

最佳答案

你是对的。 setup 和 teardown 方法在 每个 测试用例之前和之后运行。这确保了每个测试都是独立运行的,因此测试的顺序无关紧要。在设置过程中创建的对象在一次测试期间发生更改会为每个测试重新创建,因此测试不会相互影响。

关于python - python单元测试中setUp/tearDown的顺序是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32146177/

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