Fel*_*ago 7 python templates unit-testing jinja2
我一直在寻找一种对 jinja2 模板进行单元测试的方法。我已经做了一些研究,但我唯一能找到的是如何测试传递给模板的变量: 如何对从 webapp2 请求处理程序传递给 jinja2 模板的模板变量进行单元测试
换句话说,我想测试模板中使用的逻辑是否正在生成预期的输出。
我想我可以创建一个“黄金”文件,这样我就可以将生成的文件与黄金文件进行比较,但是由于可能性的数量,这将需要太多的“黄金”文件。
还有其他想法吗?
为什么不在测试中简单地将模板渲染为字符串,然后检查渲染的模板是否正确?
类似的东西:
import jinja2
# assume it is an unittest function
context = { # your variables to pass to template
'test_var': 'test_value'
}
path = 'path/to/template/dir'
filename = 'tempalte_to_test.tpl'
rendered = jinja2.Environment(
loader=jinja2.FileSystemLoader(path)
).get_template(filename).render(context)
# `rendered` is now a string with rendered template
# do some asserts on `rendered` string
# i.e.
assert 'test_value' in rendered
Run Code Online (Sandbox Code Playgroud)
我不确定如何计算覆盖率。
| 归档时间: |
|
| 查看次数: |
4309 次 |
| 最近记录: |