2
如果有以下的Django(1.4)模型:Django的測試不提高完整性錯誤CharField
from django.db import models
class SimpleModel(models.Model):
name = models.CharField(max_length=100)
而這個簡單的測試:
from django.test import TestCase
from models import SimpleModel
from django.db import IntegrityError
class SimpleTest(TestCase):
def test_integrity_error(self):
with self.assertRaises(IntegrityError):
m = SimpleModel()
m.save()
隨着數據庫使用sqlite3的數據庫。如果我現在使用python manage.py test <appname>
運行測試,則測試將以AssertionError: IntegrityError not raised
失敗。
現在的問題是:爲什麼?
據我瞭解(或沒想明白)的Django的默認值的字段是blank=False
和null=False
,所以我會假設節省的模型實例使用默認值(這是我想了CharField應該是一個空字符串)肯定會失敗!那麼,爲什麼不這樣呢?