【发布时间】:2018-09-15 21:33:48
【问题描述】:
我正在尝试测试 json 文件是否与标准 json 文件相同。使用验证器:
import valideer as V
product_schema = {
"+id": "number",
"+name": "string",
"+price": V.Range("number", min_value=0),
"tags": ["string"],
"stock": {
"warehouse": "number",
"retail": "number",
}
}
validator = V.parse(product_schema)
3 个示例,其中两个在做需要做的事情,第三个通过了,虽然它应该失败:
product1 = {
"id": 1,
"name": "Foo",
"price": 123,
"tags": ["Bar", "Eek"],
"stock": {
"warehouse": 300,
"retail": 20
} }
validator.is_valid(product1) # gives true, which makes sense (identical schema)
另一个例子
product2 = {
"id": 1,
"price": 123, }
validator.is_valid(product2) # gives False, since the schema are different
我的问题在于我们有额外功能的情况:
product3 = {
"id": 1,
"extra id": 12,
"name": "Foo",
"price": 123,
"tags": ["Bar", "Eek"],
"Hi" : "bar",
"stock": {
"warehouse": 300,
"retail": 20
} }
validator.is_valid(product3) # gives true! though the schema are different!
在尝试进行单元测试以确保架构没有更改时,这会导致问题。我怎样才能确保第三次护理会给出假?
【问题讨论】: