首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Pytest断言与Python断言

Pytest断言与Python断言
EN

Stack Overflow用户
提问于 2020-06-11 20:52:01
回答 1查看 841关注 0票数 2

我使用pytest断言来验证数据和数据条件。我想知道这是否与Python断言相同,使用pytest断言来验证任何测试条件是一种很好的实践。

我找不到任何地方--没有--可以使用pytest断言。

谢谢你的帮助

EN

回答 1

Stack Overflow用户

发布于 2020-06-11 21:48:14

[医]脓性文档中,断言只是标准的python。不过,其他包可能有自己的带有自定义功能的断言方法。

注意,如果您使用python的断言,您可能需要检查某些对象的__eq__方法的实现,因为某些对象的默认情况是只检查它们是否指向内存中的相同地址。

例如,假设您有一个类TestClass,其中num是字符串,id是int。

代码语言:javascript
复制
class TestClass:
    def __init__(self, name, id):
        self._name = name
        self._id = id

现在,如果实例化TestClass的两个实例,如下所示:

代码语言:javascript
复制
test1 = TestClass("test", 1)
test2 = TestClass("test", 1)

然后,assert test1 = test2默认会给出False,因为它们是两个独立的对象。

但是,您可以在这样的类中重写__eq__方法:

代码语言:javascript
复制
    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)

现在,如果您定义:

代码语言:javascript
复制
test1 = TestClass2("test", 1)
test2 = TestClass2("test", 1)

然后assert test1 == test2给出了真。

其他一些包可能有自己的断言函数和对象集,在这些对象中,断言显式地处理此功能。

至于使用哪种方法,这主要是一个偏好问题,或者是您正在与谁一起工作的问题。最佳做法是使用与同事相同的方法。除此之外,我更喜欢基本python函数,因为大多数人应该知道如何使用它们,对于其他包来说可能不是这样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62333367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档