Python单元测试:类型检查自定义类类型

时间:2015-07-27 21:06:29

标签: 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变量的类型?

1 个答案:

答案 0 :(得分:6)

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

self.assertIsNotNone(myprogram_database.create_sqla_engine())

如果您确实想要检查返回类型是否是其他内容的实例,则可以使用assertIsInstance

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