我的影片未能在通过在同一个测试用例类另一个测试断言单元测试。
下面是测试通过:
def test_home(self):
c = Client()
resp = c.get('/')
self.assertEqual(resp.status_code, 200)
self.assertTrue('a_formset' in resp.context)
下面是失败的测试:
def test_number_initial_number_of_forms(self):
c = Client()
resp = c.get('/')
self.assertEqual(resp.context['a_formset'].total_form_count(), 1)
在第二次测试,我得到的错误TypeError: 'NoneType' object has no attribute '__getitem__'
。
如果我执行第二次测试为
def test_number_initial_number_of_forms(self):
c = Client()
resp = c.get('/')
self.assertTrue('a_formset' in resp.context)
self.assertEqual(resp.context['a_formset'].total_form_count(), 1)
我得到的错误TypeError: argument of type 'NoneType' is not iterable
。 我已经通过,该response.content包含我期望能获得该页面的第二测试打印声明证实,状态代码是正确的,该模板是正确的。 但响应的情况下是一致的None
第二次考试。
我通过标准的“蟒蛇manage.py测试...”界面运行我的Django的单元测试,所以我不相信我跑步进入“ 上下文是从壳空 ”的问题。
这是怎么回事这个?
编辑:
如果我添加print type(resp.context['a_formset'])
对每个试验中,用于工作测试我得到<class 'django.forms.formsets.AFormFormSet'>
对于非工作测试,我得到TypeError: 'NoneType' object has no attribute '__getitem__'
一次。