다음은 현재 사용중인 coverage.py 보고서의 스크린 샷입니다.장고 테스트 모델 속성
나는이 모델에 대한 100 % 혜택을 얻을하는 방법을 확실입니다. 행 13-20을 테스트하려면 어떻게합니까? 내 tests_model.py
에서 나는 이것이 적용될 인스턴스를 만들어서 생각했습니다. 그러나 이것은 사실이 아닙니다. 나는 각각의 속성은 예를 들어, 동일한 테스트 파일에 자신을 소유하고 테스트하는 것을 시도했다
# Core Django imports
from django.test import TestCase
# Third-party app imports
import nose.tools as noz
from model_mommy import mommy
from model_mommy.recipe import Recipe, foreign_key
# app imports
from ..models.company import Company
from testapp.apps.profiles.models.appUserModel import AppUser
class CompanyModel(TestCase):
def setUp(self):
self.company = mommy.make(Company)
noz.assert_true(isinstance(self.company, Company))
def test_company_user_count_is_0(self):
company = mommy.make(Company)
noz.assert_equal(company.company_user_count(), 0)
def test_company_user_count(self):
# Relationship can be one-to-many with users.
company = mommy.make(Company)
user1, user2 = mommy.make(AppUser, _quantity=2)
company.users.add(user1)
company.users.add(user2)
noz.assert_equal(company.company_user_count(), 2)
def test_company_unicode(self):
noz.assert_equal(self.company.__unicode__(), self.company.name)
...
def test_name(self):
company = mommy.make(Company, name="Test Name")
noz.assert_equal(company.name, "Test Name")
하지만 내 보상 점수에 아무런 영향을주지 않습니다.
는 의견에 나는 또한이 시도 기반 :
def test_name(self):
company = mommy.make(Company)
company.name = "Test"
company.save()
noz.assert_equal(company.name, "Test")
그러나 다시,이 점수에 영향을 미치지 않았다.
이> python manage.py test
.........
Name Stmts Miss Cover Missing
------------------------------------------------------------------------------------------------
testapp.apps.referrals.models 1 1 0% 1
testapp.apps.referrals.models.company 17 15 12% 1-24, 27
------------------------------------------------------------------------------------------------
TOTAL 136 73 46%
----------------------------------------------------------------------
디렉토리 :
testapp/
manage.py
testapp/
__init__.py
apps/
__init__.py
referrals/
__init__.py
tests/
__init__.py
model_tests.py
더미 데이터로 모델을 업데이트하는 것은 어떻습니까? –
@neo_blackcap은 이미 생성 된 인스턴스 self.company를 가져 와서 각 속성을 업데이트한다는 의미입니까? 그냥 company.name = "Test"점수에 영향을 미치지 않고 미안합니다 :) – Prometheus
생성 또는 업데이트가 OK입니다. 결과가 메모리에 저장되는 것이 아니라 데이터베이스에 저장되어야한다고 생각합니다. –