Django中可复用的测试断言帮助器
我正在为一个Django 1.4的应用编写单元测试。在我的tests.py文件中,我想要一个可以在测试类中使用的辅助函数。这个辅助函数是这样定义的:
def error_outcome(self, response):
self.assertEqual(response.status_code, 403)
data = json.loads(response._get_content())
self.assertEquals(data, {'error': 1})
下面是一个使用这个辅助函数的测试类的例子:
class SomeTest(TestCase):
def test_foo(self):
request = RequestFactory().post('/someurl')
response = view_method(request)
error_outcome(self, response)
这样做是可以的,但其实不太好,因为这个辅助函数不应该使用self,因为它是一个函数,而不是一个方法。有没有什么办法可以让它在不使用self的情况下工作呢?谢谢。
1 个回答
2
创建一个基础测试用例类,并定义一个叫做 error_outcome()
的方法:
class BaseTestCase(TestCase):
def error_outcome(self, response):
self.assertEqual(response.status_code, 403)
data = json.loads(response._get_content())
self.assertEquals(data, {'error': 1})
class SomeTest(BaseTestCase):
def test_foo(self):
request = RequestFactory().post('/someurl')
response = view_method(request)
self.error_outcome(response)