3

我编写了一个模板标签,其中包含了我通常希望在视图中找到的大部分逻辑。在编写一些单元测试时,我开始想知道一种稍微不同的方法。我没有足够的经验来判断利弊(也许这甚至是一种众所周知的做法——或者不可行......)。这就是为什么我对你的意见感兴趣。

我的想法是编写一个视图来处理所有逻辑并将模板标签用作将所有相关上下文传递给该视图并返回呈现的 HTML 的包装器。

我希望从这种方法中获得的优势:

  • 更容易提供不同的输出格式
  • 更容易干燥
  • 更容易测试
  • 在视图中使用装饰器和 mixin 进行权限检查
  • 视图内的缓存控件
  • 对 ajax 和/或边缘方面的好方法包括
  • 更高的灵活性

例如,呈现树状导航的模板标签可以在通过模板标签访问时提供 HTML,同时其对应的视图仍可通过 URL 访问。

该视图可以提供不同的输出格式,如 JSON、RSS、XML、处理权限检查……可以通过视图测试高级逻辑,而留给模板标签测试用例的责任只是为了确保最基本的。

我会很感激其他意见、提示或链接到包或相关帖子。

4

1 回答 1

1

在我看来,模板标签的问题是:

  1. 太抽象了。
  2. 挑战测试。
  3. 性能问题

我建议的是:

  1. 创建一个生成数据、缓存数据、处理权限以及其他任何与数据相关的函数
  2. 再写三个函数,分别以 HTML、JSON 和 XML 呈现数据
  3. 记录和编写上述功能的测试
  4. 根据需要在视图、过滤器和模板标签中使用这些功能。调用函数的视图/过滤器/标签将非常薄且易于管理。

您通过这种方法获得的好处是:

  1. 可重用代码
  2. 更容易测试的代码
  3. 更好的速度
于 2014-04-24T15:01:41.223 回答