我一直在测试路由是否存在
def test_index(self):
r = self.app.get("/")
self.assertEqual(200, r.status_code, "Status code was not 'OK'.")
我的模板具有指向另一个页面的超链接。有没有办法测试它是否存在?
答案 0 :(得分:0)
好吧,如果要测试模板,则渲染的每个模板都是对某条路线的请求的结果。如果使用url_for()
在模板中呈现url,则如果该URL指向不存在的路由,它将引发BuildError
,并且服务器将返回状态码500。因此,您不会如果您只是检查路由,则无需手动分析模板以进行测试。
示例:
from flask import Flask, render_template_string
app = Flask(__name__)
@app.route('/index')
def index():
return render_template_string("""
{{ url_for('index') }}
{{ url_for('blabla') }}
""")
def test_index(self):
r = self.app.get("/index")
self.assertEqual(200, r.status_code, "Status code was not 'OK'.")
这将导致
routing.BuildError: Could not build url for endpoint 'blabla'. Did you mean 'static' instead?
错误,这会使您的测试失败。
我希望这个解释很清楚!