[英]How can I unit test the jinja2 template logic?
我一直在尋找一種對 jinja2 模板進行單元測試的方法。 我已經做了一些研究,但我唯一能找到的是關於如何測試傳遞給模板的變量: how to unittest the template variables passed to jinja2 template from webapp2 request handler
換句話說,我想測試模板中使用的邏輯是否生成了預期的輸出。
我想我可以創建一個“黃金”文件,這樣我就可以將生成的文件與黃金文件進行比較,但是由於可能性的數量,這將需要太多的“黃金”文件。
還有其他想法嗎?
為什么不簡單地在測試中將模板渲染為字符串,然后檢查渲染的模板是否正確?
與此類似的東西:
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
我不確定如何計算覆蓋率。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.