簡體   English   中英

如何對 jinja2 模板邏輯進行單元測試?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM