程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

关注本站官方公众号:程序员总部,领取三大福利!
福利一:python和前端辅导
福利二:进程序员交流微信群,专属于程序员的圈子
福利三:领取全套零基础视频教程(python,java,前端,php)

  价值13000svip视频教程,python大神匠心打造,零基础python开发工程师视频教程全套,基础+进阶+项目实战,包含课件和源码

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

测试对象看不到被测试脚本调用的库

发布于2022-08-09 03:20     阅读(943)     评论(0)     点赞(11)     收藏(1)


我正在测试一个主要由一个Foo导入库的对象组成的脚本bar

import bar

class Foo():
    *do stuff*

f = Foo()
*do stuff*

现在我创建了一个 unittest 类来测试 Foo。

import foo

class FooTest(unittest.TestCase):
    def setUp(self):
        self.foo = foo.Foo()
    
    *do tests* 

后来,它有一行:

bar.method(...)

这会因“未定义栏”而失败,但不应该通过 导入import foo吗?如何自动加载被测脚本所需的内容?


解决方案


导入器模型确实从另一个文件导入了所有内容,但在导入的模型名称下作为命名空间。看一个例子:

so_imported.py

import json

class Test:
    def __init__(self) -> None:
        self.text = "A phrase"

so_import.py

import so_imported

class Test2:
    def __init__(self) -> None:
        self.inner = {"test": so_imported.Test().text}
        print(so_imported.json.dumps(self.inner))

Test2()

所以你看到在json模块的命名空间下导入的库了吗?

如果您想从导入的文件中导入所有内容而不使用任何命名空间,您可以使用:from foo import *. 然后这些对象将被合并到导入器命名空间中。



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:https://www.pythonheidong.com/blog/article/1652064/cf9957524b7b29a1b185/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

11 0
收藏该文
已收藏

评论内容:(最多支持255个字符)