我在开发程序时正在编写单元测试。我将 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/