测试变量INSIDE一个视图函数 - 没有返回

时间:2016-10-04 17:26:56

标签: python django testing

我是Django + Python的新手,所以我不确定这个问题有多大意义。

基本上,我正在处理一个在views.py文件中具有函数的项目(不是由我创建的)。此视图功能的目的不是提供HTTP响应,而是发送电子邮件。

它接受一个请求作为参数(包含将循环的数据 - 其中一些被插入到电子邮件中。

该函数的结尾调用了email_extrals.utils函数send_mail_template(传入了各种不同的变量)。

我的问题是我想为这个函数编写一个测试,它基本上没有返回任何东西(我可以看到 - 它只是发送一封电子邮件)。此视图函数实际上在API中的其他位置调用。

此测试的目的是确保如果请求数据中存在某些变量,则它们应存在于传递给send_email_template()调用的变量中。所以我对函数内部的变量进行了测试 - 而不是返回什么。

我需要以某种方式访问​​函数的内部变量来测试它们。

我无法想出一种方法来测试这一点,此时我的头撞在了墙上。我可以在线查看视图的任何测试信息主要是测试响应或各种模型相关的问题。

任何正确方向的推动都将是一个巨大的帮助。指向文档的链接或类似的基本示例。

谢谢, 迪恩

1 个答案:

答案 0 :(得分:1)

解决这个问题的一种方法是制作你自己的send_email_template()虚假版本,除了验证是否使用所需的参数值进行调用之外什么都不做,如果错误则会引发异常。

然后,在您的测试设置中,您将替换真假send_email_template()。这称为Mocking

为了安全起见,你还要断言你的虚假函数实际上被称为