【发布时间】:2016-02-03 05:17:27
【问题描述】:
我在尝试运行 django 测试时收到错误消息 这是我的模型文件代码
class MountPoint(models.Model):
name = models.CharField(max_length=100)
backend = models.CharField(max_length=200,default=DEFAULT_BACKEND)
path = models.CharField(max_length=300)
def __unicode__(self):
return self.name
这是我测试的课程
class MountPoint(TestCase):
def create_mountpoint(self):
name = "test"
backend = "test"
path = user_root
return MountPoint(name, backend, path)
def test_mountpoint_creation(self):
m = self.create_mountpoint()
self.assertTrue(isinstance(m, MountPoint))
self.assertEqual(m.__unicode(), m.name)
我得到的错误信息如下。它说我有比预期更多的投入。
Traceback(最近一次调用最后一次): 文件“/Users/xihui/Documents/WebProgramming/django/ece264site/filesystem/tests.py”,第 18 行,在 test_mountpoint_creation m = self.create_mountpoint() 文件“/Users/xihui/Documents/WebProgramming/django/ece264site/filesystem/tests.py”,第 15 行,在 create_mountpoint 返回 MountPoint(名称、后端、路径) TypeError: init() 最多接受 2 个参数(给定 4 个)
在 0.009 秒内运行 1 次测试
失败(错误=1)
【问题讨论】:
-
测试类的名称会隐藏模型类的名称,因此当您尝试实例化模型实例时,它实际上会尝试创建测试类的新实例,这显然需要不同的参数.将您的测试类重命名为
TestMountPoint -
顺便提一下,DEFAULT_BACKEND = 'filesystem.backend.HDWrapper.DirectionHDWrapper,filesystem.backend.HDWrapper.DocumentHDWrapper'