Rob*_*erd 5 python unit-testing python-2.7 python-unittest
我正在尝试对访问远程服务的python代码进行单元测试。我在python 2.7中使用PyUnit。
在该setUpClass方法中,代码提示用户输入服务的密码。我想使所有模块保持模块化,因此我为每个要测试的类创建了单独的单元测试类。这些类都访问相同的远程服务,并且都使用setUpClass超类的方法的单个定义。
我的问题是我必须多次重新输入密码(每个测试类一次)。我很懒。我只想为所有单元测试输入一次密码。我可以通过在单元测试中对密码进行硬编码来避免此问题,但这是一个糟糕的主意。另一种选择是将所有内容都推入一个派生自的庞大类中unittest.TestCase,但由于我喜欢模块化,因此我想避免使用这条路线。
代码的结构如下:
import unittest
from getpass import getpass
class TestCommon(unittest.TestCase):
@classmethod
def setUpClass(cls):
pwd = getpass()
class test_A(TestCommon):
# ...individual unit tests for class A
class test_B(TestCommon):
# ...individual unit tests for class B
Run Code Online (Sandbox Code Playgroud)
在此示例中,我将不得不输入两次密码:一次输入class A,一次输入class B。
是否有人建议我在单元测试运行开始时就一次性输入一次安全密码?谢谢!
类定义执行一次。
import unittest
from getpass import getpass
class TestCommon(unittest.TestCase):
pwd = getpass()
class test_A(TestCommon):
def test_a(self):
self.assertEqual(self.pwd, 'secret')
class test_B(TestCommon):
def test_b(self):
reversed_pwd = self.pwd[::-1]
self.assertEqual(reversed_pwd, 'terces')
Run Code Online (Sandbox Code Playgroud)
密码可通过self.pwd或访问TestCommon.pwd。
| 归档时间: |
|
| 查看次数: |
1849 次 |
| 最近记录: |