首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何测试HTMX请求?

如何测试HTMX请求?
EN

Stack Overflow用户
提问于 2022-06-02 08:54:32
回答 1查看 414关注 0票数 1

我和Django和HTMX一起工作。我的一个视图接收一个GET请求并返回整个页面。但是,如果GET请求来自HTMX元素,视图将返回一个片段:

代码语言:javascript
复制
from django.shortcuts import render

def view_example(request):
    if request.htmx:
        return render(request, 'fragment.html')
    else:
        return render(request, 'page.html')

page.html中,一个HTMX元素触发一个GET请求,该请求需要这个片段。它起作用了--我的功能测试见HTMX请求的结果。当我在浏览器中查看它时,它也能工作。不过,它在我的单元测试中不起作用!

我试着测试两种不同类型的反应:

代码语言:javascript
复制
from django.test import TestCase

class TestRequests(TestCase):
    def test_page(self):
        response = self.client.get('/')
        self.assertTemplateUsed(response, 'page.html')

    def test_fragment(self):
        headers = {'Hx-Request': 'true'}
        response = self.client.get('/', **headers)
        self.assertTemplateUsed(response, 'fragment.html')

test_page按预期通过,但test_fragment失败:

AssertionError: False不是真: Template 'fragment.html‘不是用来呈现响应的模板。实际使用的模板: page.html

如何模拟HTMX请求,以便测试我的片段逻辑?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-02 09:46:52

Django-HTMX的头检查是区分大小写的(这是一个dict查找)。

代码语言:javascript
复制
def test_fragment(self):
    headers = {'HX-Request': 'true'}
    response = self.client.get('/', **headers)
    self.assertTemplateUsed(response, 'fragment.html')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72473415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档