我正在开发一个 CherryPy 应用程序,我想为它编写一些自动化测试。我选择使用鼻子测试。该应用程序使用 sqlalchemy 作为数据库后端,因此我需要使用fixture 包来提供固定数据集。我也想做网络测试。这是我将它们组合在一起的方式:
我init_model(test = False)
在创建所有模型的文件中有一个辅助函数。它连接到生产或测试(如果 test == True 或 cherrypy.request.app.test == True)数据库并调用create_all
然后我为这样的测试创建了一个基类:
class BaseTest(DataTestCase):
def __init__(self):
init_model(True)
application.test = True
self.app = TestApp(application)
self.fixture = SQLAlchemyFixture(env = models, engine = meta.engine, style = NamedDataStyle())
self.datasets = (
# all the datasets go here
)
现在我通过创建 BaseTest 的子类并调用self.app.some_method()
这是我第一次在 python 中进行测试,这一切看起来都非常复杂。我想知道我是否按照作者的意图使用上述软件包,以及它是否过于复杂。