我使用pytest断言来验证数据和数据条件。我想知道这是否与Python断言相同,使用pytest断言来验证任何测试条件是一种很好的实践。
我找不到任何地方--没有--可以使用pytest断言。
谢谢你的帮助
发布于 2020-06-11 21:48:14
从[医]脓性文档中,断言只是标准的python。不过,其他包可能有自己的带有自定义功能的断言方法。
注意,如果您使用python的断言,您可能需要检查某些对象的__eq__方法的实现,因为某些对象的默认情况是只检查它们是否指向内存中的相同地址。
例如,假设您有一个类TestClass,其中num是字符串,id是int。
class TestClass:
def __init__(self, name, id):
self._name = name
self._id = id现在,如果实例化TestClass的两个实例,如下所示:
test1 = TestClass("test", 1)
test2 = TestClass("test", 1)然后,assert test1 = test2默认会给出False,因为它们是两个独立的对象。
但是,您可以在这样的类中重写__eq__方法:
class TestClass2:
def __init__(self, name, id):
self._name = name
self._id = id
def __eq__(self, other_test_class):
return (self._name = other_test_class._name) and (self._id = other_test_class._id)现在,如果您定义:
test1 = TestClass2("test", 1)
test2 = TestClass2("test", 1)然后assert test1 == test2给出了真。
其他一些包可能有自己的断言函数和对象集,在这些对象中,断言显式地处理此功能。
至于使用哪种方法,这主要是一个偏好问题,或者是您正在与谁一起工作的问题。最佳做法是使用与同事相同的方法。除此之外,我更喜欢基本python函数,因为大多数人应该知道如何使用它们,对于其他包来说可能不是这样。
https://stackoverflow.com/questions/62333367
复制相似问题