gpt4 book ai didi

Python 单元测试/测试夹具测试模块是否已加载

转载 作者:行者123 更新时间:2023-12-04 14:23:05 26 4
gpt4 key购买 nike

我正在使用另一个 SO 建议来导入 simplejson ,其内容如下:

try:
import simplejson as json
except ImportError:
import json
但是,在编写我的单元测试以查看“其中一个 json 模块”实际上是否已被导入时,我陷入了我自己设计的循环噩梦中!/叹。
class AreAllModulesLoaded(unit.TestCase):
"""Test to make sure all modules are loaded"""
def test_json(self):
try:
self.assertTrue("simplejson" in sys.modules)
except:
try:
self.assertTrue("json" in sys.modules)
except AssertionError:
raise
然而,我认为这样的事情在检查 unittest.failUnless 时会起作用。或 unittest.assertTrue (我都试过),它引发了失败并且测试停止(它失败是因为我只加载 json 而不是 simplejson 导致失败)...
我的预期目标是我希望我的单元测试确认加载了 json 或 simplejson。我该怎么办?
我曾想过在断言之前捕获“真实性”,然后只传递“真”或“假”,但这对单元测试来说并不合适,因为我认为这应该是单元测试的一部分而不是工作-around(这是我的观点,也许你有不同的感觉)。例如,我曾想过做一些类似(python-esque pseduoish code)的事情:
_simplejsonLoaded = "simplejson" in sys.modules
_jsonLoaded = "json" in sys.modules

self.assertTrue(_simplejsonLoaded or _jsonLoaded)
(我是正式单元测试的新手 - 所以,如果这里看起来很疯狂,请告诉我)。
其他信息:
  • 我使用 Python 2.6(出于工作原因 - 无法更改)
  • Windows 和 Linux
  • 最佳答案

    我认为您不需要 TestCase 中的 try/except 内容

    import sys
    import unittest
    try:
    import simplejson as json
    except ImportError:
    import json

    class TestSomething(unittest.TestCase):
    def test_json(self):
    if ('json' in sys.modules or 'simplejson' in sys.modules):
    self.assert_(True, "some kind of json loaded")
    else:
    self.fail()

    if __name__ == "__main__":
    unittest.main()

    关于Python 单元测试/测试夹具测试模块是否已加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19667736/

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