Performance: Testing models
LOW IMPACT
Testing models affects development speed and feedback loop but can indirectly impact page load if tests are run during deployment.
from django.test import TestCase class GoodModelTest(TestCase): def test_create(self): MyModel.objects.create(name="Name") self.assertEqual(MyModel.objects.count(), 1)
from django.test import TestCase class BadModelTest(TestCase): def test_create(self): for i in range(1000): MyModel.objects.create(name=f"Name {i}") self.assertEqual(MyModel.objects.count(), 1000)
| Pattern | DB Operations | Test Runtime | Resource Usage | Verdict |
|---|---|---|---|---|
| Creating 1000 model instances in one test | 1000 writes | Several seconds | High CPU and DB load | [X] Bad |
| Creating 1 model instance per test | 1 write | Milliseconds | Low resource usage | [OK] Good |