Тестирование настраиваемого фильтра шаблонов Django

Отражение Испускает, и Деревья выражений приходят на ум...

не пропускают CLR Jeffrey Richter через C#, и Jon Skeet alt text

Посмотрите здесь для некоторых ресурсов:

http://www.codeproject.com/KB/trace/releasemodebreakpoint.aspx

http://www.codeproject.com/KB/dotnet/Creating_Dynamic_Types.aspx

http://www.codeproject.com/KB/cs/lambdaexpressions.aspx

17
задан Belmin Fernandez 21 December 2010 в 03:47
поделиться

2 ответа

Вот как я это делаю (извлечено из моего django-multiforloop ):

from django.test import TestCase
from django.template import Context, Template

class TagTests(TestCase):
    def tag_test(self, template, context, output):
        t = Template('{% load multifor %}'+template)
        c = Context(context)
        self.assertEqual(t.render(c), output)
    def test_for_tag_multi(self):
        template = "{% for x in x_list; y in y_list %}{{ x }}:{{ y }}/{% endfor %}"
        context = {"x_list": ('one', 1, 'carrot'), "y_list": ('two', 2, 'orange')}
        output = u"one:two/1:2/carrot:orange/"
        self.tag_test(template, context, output)

Это довольно похоже на то, как тесты выложены в собственном наборе тестов Джанго , но не полагаясь на несколько сложную испытательную машину django.

15
ответ дан 30 November 2019 в 12:26
поделиться

Самый простой способ проверить шаблонный фильтр - это проверить его как обычную функцию.

@ register.filter decorator не вредит основной функции, вы можете импортировать фильтр и использовать его, как если бы он не был оформлен. Этот подход полезен для тестирования логики фильтра.

Если вы хотите написать больше тестов в стиле интеграции, вам следует создать экземпляр шаблона django и проверить правильность вывода (как показано в ответе Габриэля).

16
ответ дан 30 November 2019 в 12:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: