目前,我正在更深入地研究测试技术,尽管我不确定我是否仍然居住在 unittest 领域或已经将其留在了集成测试领域。
让我详细说明一下,给定两个组件 A 和 B 并且 A 使用 B,那么我们对 B 有一定的“向上合同”,对于 A 有一定的“向下合同”。基本上这意味着:如果 A 正确使用 B 并且B 行为正确,那么两个合同都将得到履行,一切都会正常工作。
我认为模拟是一种保证给定测试用例所需的向上契约子集的方法。例如,如果数据记录之前已插入,则数据库连接可能具有检索数据记录的向上合同。数据库连接模拟保证返回某些记录,而不需要将它们插入数据库。
但是,我目前想知道是否也有办法验证向下合同。给定数据库连接的示例,向下契约可能是:您必须连接到数据库并确保连接存在且有效,并输入正确的 SQL 查询。
有没有人做这样的事情?这值得为更复杂的合同工作吗?(例如,数据库连接可能需要 SQL 解析器才能完全验证对数据库层的调用)
问候,泰达