gpt4 book ai didi

使用用户输入的密码进行 Python 单元测试

转载 作者:太空狗 更新时间:2023-10-30 01:23:03 25 4
gpt4 key购买 nike

我正在尝试对访问远程服务的 python 代码进行单元测试。我在 python 2.7 中使用 PyUnit。

setUpClass方法中,代码提示用户输入服务密码。我想保持一切模块化,所以我为每个被测试的类创建了单独的单元测试类。这些类都访问相同的远程服务,并且它们都使用来自父类(super class)的 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

在这个例子中,我必须输入密码两次:一次是针对 A 类,一次是针对 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')

密码可通过self.pwdTestCommon.pwd 访问。

关于使用用户输入的密码进行 Python 单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17375032/

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