我希望确保代码中的特定条件会导致日志(log)消息写入django日志(log).我如何使用Django单元测试框架来实现这一点?

有没有地方可以判断记录的消息,就像判断已发送的邮箱一样?我的单元测试扩展到django.test.TestCase.

推荐答案

使用mock模块模拟日志(log)记录模块或记录器对象.完成此操作后,请判断调用日志(log)记录函数时使用的参数.

例如,如果代码如下所示:

import logging

logger = logging.getLogger('my_logger')

logger.error("Your log message here")

它看起来如下所示:

from unittest.mock import patch # For python 2.x use from mock import patch

@patch('this.is.my.module.logger')
def test_check_logging_message(self, mock_logger):
    mock_logger.error.assert_called_with("Your log message here")

Django相关问答推荐

在Django中使用Generil.ListView类时,分页不起作用

如何在Django中显示文件大小

如何在Django模板中获取组中对象的整体计数器(&Q;)?

在不指定查找的情况下调用 prefetch_lated() 有用吗?

Django: 无法将我的 comments 关联到特定产品

Django中用于外键的嵌套循环

Django 相当于子查询

Django Inline Tabular admin:删除一个不工作的对象

在Django Rest Framework中按模型属性排序时如何避免重新计算?

Django 如何知道我的数据库的路径?

如何在 Django 中创建一个独特的 slug

django-rest-framework 如何使模型序列化器字段成为必需

如何查看 Django 调试工具栏?

为什么 django 1.7 会为字段 Select 的变化创建迁移?

Django,如何从模型表单的 Select 字段中删除空白 Select ?

Django: Admin:在管理员中更改字段的小部件

Django-获取外键模型

从表单获取模型实例而不保存

django 静态文件版本控制

Django:必须使用对象 pk 或 slug 调用通用详细视图