![]() |
1
16
您可以使用
|
![]() |
2
1
您需要一系列伪数据库,称为存根,它们返回硬编码的值。在测试期间,使用这些存根,而不是真实的数据库。我不熟悉Python,但在C++中实现这一点的一种方法是将对象作为构造函数参数接收数据库。在生产代码中,您使用真实的数据库参数,在测试存根中。这可以做到,因为构造函数需要指向公共基类的指针。即使它不是为Python编写的,我建议阅读Roy Osherove的第一章:单元测试的艺术。这本书清楚地解释了为什么这些假数据库是存根而不是模拟数据库。 |
![]() |
3
1
您刚刚重新发现了测试之所以重要的最令人信服的原因之一:它告诉您什么时候您的设计不好。 换言之,可测试性是一个很好的一阶代理 质量 . 考虑以下因素:
如果您使用多个数据库,则可以使用多态性,或者根据API相似性,将特定数据库作为对象的构造函数参数。 |