使用Google App引擎时,我已经开始寻找进行单元测试的方法。从我阅读的内容来看,这似乎有些棘手。由于您不能(也不应该)对数据存储区运行测试。

我已经编写了一个抽象类来模拟数据存储模型类。在get,all,fetch等上返回样机数据(仅在小规模尝试下),返回类似结果的dbModel,这非常不错。

我尚未找到满意的解决方案的一件事是如何区分要使用的模型类。我想在运行webapp时使用模型进行单元测试,并使用实际的db.Model。

我当前的解决方案在包含所有db.Models的.py中看起来像这样:

if 'SERVER_SOFTWARE' in os.environ:
    class dbTest(db.Model):
        content = db.StringProperty()
        comments = db.ListProperty(str)
else:
    class dbTest(Abstract):
        content = 'Test'
        comments = ['test1', 'test2']


有点像它可能会中断任何一分钟。这是走的路吗,还是可以将它们作为一个类组合在一起,如果db.Model被正确调用,则使用其他模型吗?

最佳答案

签出gaetestbeddocs)。它对数据存储区(以及所有其他服务,如内存缓存)进行存根处理,并使从命令行进行测试非常容易。它确保在每次测试运行之前都保持干净的环境。

我个人认为它比我所看到的其他解决方案更好。

关于python - 如何在webapp和unittest之间区分模型类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4313280/

10-14 16:49
查看更多