我的第一次单元测试,我做错了什么?

时间:2014-10-20 08:25:04

标签: django unit-testing python-2.7

这是我第一次尝试编写测试,我猜测我自己编写测试本身就明显搞砸了。

这是我的测试:

from django.test import TestCase

from accounts.forms import UserReview

class MyTests(TestCase):
    def test_forms(self):
        form_data = {'headline': 'test', 'body_text': 'description of item Im selling', 'author: ben'}
        form = SellForm(data=form_data)
        self.assertEqual(form.is_valid(), True)

我收到以下错误:

ImportError: Failed to import test module: accounts.tests
Traceback (most recent call last):
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/loader.py", line 254, in _find_tests
    module = self._get_module_from_name(name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/loader.py", line 232, in _get_module_from_name
    __import__(name)
  File "/Users/benjamino/Desktop/myproject/myproject/accounts/tests.py", line 8
    form_data = {'headline': 'test', 'body_text': 'description of item Im selling', 'author: ben'}
                                                                                                 ^
SyntaxError: invalid syntax


----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (errors=1)
Destroying test database for alias 'default'...

为什么accounts.tests无法导入?上面的代码位于我的accounts / tests.py。

3 个答案:

答案 0 :(得分:0)

这是一个简单的语法错误,正如消息告诉您的那样。您在dict的最后一个元素中引用错误:'author: ben'应为'author': 'ben'

答案 1 :(得分:0)

错误的位置是明确的:

File "/Users/benjamino/Desktop/myproject/myproject/accounts/tests.py", line 8
    form_data = {'headline': 'test', 'body_text': 'description of item Im selling', 'author: ben'}
                                                                                                 ^
SyntaxError: invalid syntax

更好地了解form_data:{'标题':'测试','body_text':'项目描述我卖','作者:本'}(你在字典中包含了一个字符串而不是一个名字:值对

答案 2 :(得分:0)

从异常本身可以清楚地看出错误在你的语法中。表单数据格式应为{name:value},但在您的情况下,{' string:value'}如果这不能解决您的问题,也许这可以帮助您 Link