仪表板快照测试包
dash-snapshot-testing的Python项目详细描述
短划线快照测试
受jest快照测试启发,使用快照测试来测试[dash][]组件。
有关详细信息,请参阅项目[readme](https://github.com/stratodem/dash-snapshot-testing/blob/master/readme.md)。
灵感
测试长HTML组件输出以用于短划线应用程序是困难。
它通常需要硬编码数据或设置虚拟数据库。
使用快照测试,json序列化dash组件输出,提供另一个简单的测试层,以确保代码重构/更改不会意外更改
输出。
从[facebook jest site](https://facebook.github.io/jest/docs/en/snapshot testing.html)详细解释安装和使用dashSnapshotTestCase类myUnitTestCase(dashSnapshotTestCase):
def test_component(self):
my_component=html.div([html.p('wow'),html.span('this works'),id='test-id')
self.assertSnapshotEqual(my_component,'my test unique id')
```
this outputs/checks this json at``uu snapshots`/myunittestcase-my-test-unique-id.json`:
``json
{
“type”:“div”,
“props”:{
“id”:“test id”,
“children”:[
“type”:“p”,
“props”:{“children”:“wow”},
“名称空间”:“破折号HTML组件”
},
{
“类型”:“跨度”,
“属性”:{“子项”:“可以工作”},
“名称空间”:“破折号HTML组件”
}
]
},
“namespace”:“dash\u html\u组件”
````
<<<
``` python
class myotherUnitTestCase(dashSnapshotTestCase)(dashsnapshotTestCase)
snapshot\u dir=`` snapshot\u dir=```` snapshot\u snapshot
def测试组件(self)
键入“:”p“,
“props”:{“children”:“wow”},
“namespace”:“dash-html-components”
},
{
“type”:“span”,
“props”:{“children”:“another one”},
“namespace”:“dash-html-components”
}
]
},
“命名空间”:“DASHH HTMLX组件”
} BR/> BR/>超额快照
覆盖预先存在的快照,[类似于JEST ](http://Github.Io/Jest/DoS/En/SnopPotoTest.html更新快照),将环境变量设置为“update撸dash撸snapshots=true”:
``bash
`this will run and make new snapshots
>;update撸dash撸snapshots=true python-m unittest my撸test module
`br/>
这个“unittest.testcase”将json序列化的短划线组件
与以前存储的json序列化的短划线组件进行比较,并使用“assertequal”检查“json.loads”中的“dict”对象是否等效。
[dash]:https://github.com/plotly/dash