当前位置:  开发笔记 > 编程语言 > 正文

Python的单元测试逻辑

如何解决《Python的单元测试逻辑》经验,为你挑选了2个好方法。

有人可以向我解释这个结果.第一次测试成功但第二次测试失败,尽管测试的变量在第一次测试中发生了变化.

>>> class MyTest(unittest.TestCase):
    def setUp(self):
        self.i = 1
    def testA(self):
        self.i = 3
        self.assertEqual(self.i, 3)
    def testB(self):
        self.assertEqual(self.i, 3)


>>> unittest.main()
.F
======================================================================
FAIL: testB (__main__.MyTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "", line 8, in testB
AssertionError: 1 != 3

----------------------------------------------------------------------
Ran 2 tests in 0.016s

pjz.. 11

来自http://docs.python.org/lib/minimal-example.html:

定义setUp()方法时,测试运行器将在每次测试之前运行该方法.

因此setUp()在testA和testB之前运行,每次都将i设置为1.在幕后,整个测试对象实际上正在为每个测试重新实例化,在执行测试之前,每个新的实例化都会运行setUp().



1> pjz..:

来自http://docs.python.org/lib/minimal-example.html:

定义setUp()方法时,测试运行器将在每次测试之前运行该方法.

因此setUp()在testA和testB之前运行,每次都将i设置为1.在幕后,整个测试对象实际上正在为每个测试重新实例化,在执行测试之前,每个新的实例化都会运行setUp().



2> Sebastian Ri..:

每个测试都使用MyTest类的新实例运行.这意味着如果您在一次测试中更改self,则更改将不会转移到其他测试,因为self将引用其他实例.

此外,正如其他人所指出的那样,在每次测试之前调用setUp.

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有