使用lxml和unittest进行XML单元测试的库。
项目描述
任何使用XML的人,无论是用于RSS、配置文件,还是其他原因(有人说不能简单地使用XML,但……)。
所以,你的代码生成XML,一切看起来都很正常。如果你遵循最佳实践(如果你没有,我认为你应该),你已经编写了一些好的单元测试,其中你比较代码的结果与预期的结果。我的意思是,你比较的是字符串与字符串。有一天,可能会发生一些不好的事情。
XML不是一个简单的字符串,它是一个结构化文档。你不能简单地比较两个XML字符串并期望一切正常:属性顺序可能会意外改变,元素可能是可选的,而且没有人能简单解释XML格式化中空格和制表符是如何工作的。
这就是XML unittest TestCase的来源:如果你想使用内置的unittest包(或者如果你有这个需求),而且你不害怕使用lxml中的xpath表达式,这个库就是为你准备的。
你将能够测试你的XML文档,并使用xpath和各种模式语言的力量来编写有意义的测试。
链接
如何
扩展 xmlunittest.XmlTestCase
使用生成XML文档的功能或方法编写您的测试
使用 xmlunittest.XmlTestCase 的断言方法进行验证
保持您的测试可读
示例
from xmlunittest import XmlTestCase
class CustomTestCase(XmlTestCase):
def test_my_custom_test(self):
# In a real case, data come from a call to your function/method.
data = """<?xml version="1.0" encoding="UTF-8" ?>
<root xmlns:ns="uri">
<leaf id="1" active="on" />
<leaf id="2" active="on" />
<leaf id="3" active="off" />
</root>"""
# Everything starts with `assertXmlDocument`
root = self.assertXmlDocument(data.encode())
# Check namespace
self.assertXmlNamespace(root, 'ns', 'uri')
# Check
self.assertXpathsUniqueValue(root, ('./leaf/@id', ))
self.assertXpathValues(root, './leaf/@active', ('on', 'off'))
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
xmlunittest-1.0.1.tar.gz (5.9 kB 查看哈希值)
构建分发
xmlunittest-1.0.1-py3-none-any.whl (5.9 kB 查看哈希值)
关闭
xmlunittest-1.0.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1db262eac652d21a4af4548e8fb761f516918b980d9c1ba2828e4c7ff615e19f |
|
MD5 | 7e9208be4a8d3bda7d704921e59f58d8 |
|
BLAKE2b-256 | 8f5bbf612e3cc56bdd2fd3120e45ced6f318b4019bfec174bce3cc4d3b41bd5b |
关闭
xmlunittest-1.0.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 48d76246f3dbfd0b644d9844394e165b8f482b33996bbebe324586fe9f9cfa7a |
|
MD5 | 447b0374baa9bf03631ed1c76a9f3e0a |
|
BLAKE2b-256 | 860ed134d4e05138ed98ddbf427d1fc5a54d8ff25fd5418a1bf27af8df24d460 |