【发布时间】:2014-12-16 21:50:40
【问题描述】:
我正在学习用 Python 编写代码,但遇到了一些困难。我正在尝试创建一个静态方法以在一系列测试中重用,但我似乎无法让单元测试在该方法中工作。在转向静态方法之前,测试功能如下:
self.assertEqual(api_object.status_code, 200, "\nNot getting a 200\n")
在静态方法中,我尝试了几种可能的解决方案,但收效甚微。我已经确认传入的值是绝对匹配的。变化和故障(以及我的调试过程)的快速总结。对不起,我不能提供更多代码,工作敏感的东西:
assertEqual(api_object.status_code, 200, "\nNot getting a 200\n")
错误:全局名称 assertEqual 未定义。为了纠正我试过:
TestCase.assertEqual(api_object.status_code, 200, "Not getting a 200 back")
TypeError:未绑定的方法 assertEqual() 必须以 TestCase 实例作为第一个参数调用(取而代之的是 int 实例)。所以我尝试了:
TestCase.assertEqual(TestCase, api_object.status_code, 200, "Not getting a 200 back")
TypeError:未绑定的方法 assertEqual() 必须以 TestCase 实例作为第一个参数调用(取而代之的是类型实例)。
在这一点上,我有点难过。我正在使用 Django 框架。提前感谢您的帮助。
【问题讨论】:
-
很难说这里发生了什么。
assertEqual是 TestCase 的一种方法——它应该在当前正在测试的测试用例上调用。我想一个问题是你为什么首先要把这个调用变成一个“静态方法”?
标签: python django unit-testing assert