Python 单元测试 : type checking custom class type

标签 python unit-testing types sqlalchemy

我在开发程序时正在编写单元测试。我将 SQLAlchemy 用于数据库进程,所以我有一些这样的函数:

def create_sqla_engine():
    """ Create and return the SQLA engine """
    mysql_uri = os.environ.get('MYSQL_CONNECTION_URI')
    engine = sqlalchemy.create_engine(mysql_uri)
    return engine

如果我这样做 print(type(engine))我可以看到类型是 <class 'sqlalchemy.engine.base.Engine'>

...所以我想通过检查类型是否正确来测试此函数是否有效(假设如果 None 调用失败,类型将为 create_engine...)

此代码在 unittests.py 中:

class TestDatabase(unittest.TestCase):


    def test_database_create_merkle_sqla_session(self):
        assert type(myprogram_database.create_sqla_engine()) is # ?

如何检查 class 类型的变量类型?

最佳答案

这里你有几个选择...最简单的就是检查你得到的对象不是None:

self.assertIsNotNone(myprogram_database.create_sqla_engine())

如果你真的想检查返回类型是其他东西的实例,你可以使用assertIsInstance :

self.assertIsInstance(myprogram_database.create_sqla_engine(),
                      sqlalchemy.engine.base.Engine)

关于Python 单元测试 : type checking custom class type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31663321/

相关文章:

node.js - mocha 没有在测试目录中运行所有测试

python - 在 matplotlib 图例中的两条线上画一个大括号

python - Python 中的自由变量被视为全局变量吗?

Python 3从另一个函数更改函数中的变量

javascript - JavaScript 中的依赖注入(inject)

c# - 单元测试未到达一段代码

c# - 类型 "Action<T1,T2,T3>"存在于 2 个 DLL 中,如何指定使用哪一个或避免使用一个?

types - 为什么由于缺少类型注释而收到错误 "trait bound FromStr is not satisfied"?

c# - 从类型的部分名称获取 System.Type

python - 展平或解压 DataFrame 中嵌套字典的列表