栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Selenium3.4.0-Python3.6.1:在使用unittest的Selenium-Python绑定中,我如何决定何时使用self.assertIn或assert

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Selenium3.4.0-Python3.6.1:在使用unittest的Selenium-Python绑定中,我如何决定何时使用self.assertIn或assert

看一下Python

unittest

文档,同时回顾一下我曾经在这里进行的一系列Django单元测试,这些都是我的发现。

使用案例:

第一件事是最简单的事情,而我认为两者之间最大的不同是可以使用每个命令的情况。在测试类的情况下,它们都可以互换使用,但是,要使用该

assertIn
命令,您需要导入unittest库。所以,说我想知道是否
h
hello
。通过
assertIn
命令执行此操作的简单方法是:

class MyTestCase(unittest.TestCase):    def is_h_in_hello(self):        self.assertIn("h", "hello")

然后我需要运行测试,即通过

unittest.main()
本示例进行测试,以获得答案。但是,使用该
assert
命令可以更轻松地查看
h
in
hello
。这样做非常简单:

assert "h" in "hello"

但本质上,两者都会给我相同的答案。但是,两种方法的区别在于第二种方法的使用简便。

结果:

我发现的第二个区别是结果在Python
Shell上的可读性。该

unittest
库的设计,使得命令是非常具体的。因此,如果测试失败,您将收到一条非常明确的消息,指出出了什么问题。现在说,你想看看是否
b
hello
。通过class方法(只需更改
"h"
"b"
)进行操作,运行测试后得到的消息是:

AssertionError: 'b' not found in 'hello'----------------------------------------------------------------------Ran 1 test in 0.038sFAILED (failures=1)

因此,它非常清楚地告诉您:

'b' not found in'hello'
,这使您很方便地查看问题所在。但是说您通过
assert
命令执行相同的过程。生成的错误消息类似于:

Traceback (most recent call last):  File "<pyshell#2>", line 1, in <module>    assert "b" in "hello"AssertionError

尽管它告诉您错误类型(

AssertionError
)和回溯,但并没有特别告诉您
"b" is NOT in"hello"
。在这种简单的情况下,很容易查看回溯并说哦,您好!但是,在更复杂的情况下,要弄清为什么会生成此错误消息可能会很棘手。

总体而言,这两种方法非常相似,可以为您提供所需的结果,但是从本质上讲,这归因于此处和此处的微小差异,更少的代码行以及Shell消息的直接性。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/401425.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号