我正在编写具有数据库依赖性的单元测试(因此技术上他们是功能测试)。通常这些测试不仅依赖于数据库的实时性和功能性,还可以依赖于某些数据的可用性。除了通过或失败之外,Python单元测试还有其他结果吗?
例如,在一次测试中,我可能会查询数据库以检索将用于测试更新或删除功能的示例数据。如果数据尚不存在,那么在这种情况下这不完全是失败。我只关心更新或删除的通过/失败状态,在这种情况下,我们甚至没有足够的时间去测试它。所以我不想给出假阳性或假阴性。
有没有一种优雅的方式让单元测试返回第三种可能的结果?如警告?
Pytest具有跳跃和xfail http://doc.pytest.org/en/latest/skipping。 html – allcaps
虽然这是一个失败 - 您的测试无法以您的测试需要的方式设置系统。如果说“数据不存在,所以这个测试失败就没问题”是说你并不在乎你测试的功能是否工作。在取回数据之前,让您的测试可靠地插入数据,这将使您更好地了解系统的状态。 –
如果他们是单元测试,你应该考虑嘲笑SQL层,这样你的测试只测试一段特定的代码(没有像这样的依赖)。具有这些依赖关系会减慢测试执行时间。 – Mark