بهبود وضعیت فایل های تست

سلام

در حال حاضر تمام کدهای مربوط به تست برنامه را درون فایل قرار accounts/tests.py می دهیم. یک فایل طولانی و بلند…

در این قست می خواهیم برنامۀ تست را به چند فایل متفاوت تقسیم‌بندی کنیم.

برای اینکار یک فولدر با نام tests داخل فولدر accounts ایجاد می کنیم. درون این فولدر یک فایل خالی با نام init__.py__ می‌سازیم.

حالا فایل تست قبلی را درون فولدر جدید منتقل داده و نام آن را به test_view_signup.py تغییر می دهیم.

نمای فولدر پروژه به این شکل می شود.

myproject/
 |-- myproject/
 |    |-- accounts/
 |    |    |-- migrations/
 |    |    |-- tests/
 |    |    |    |-- __init__.py
 |    |    |    +-- test_view_signup.py
 |    |    |-- __init__.py
 |    |    |-- admin.py
 |    |    |-- apps.py
 |    |    |-- models.py
 |    |    +-- views.py
 |    |-- boards/
 |    |-- myproject/
 |    |-- static/
 |    |-- templates/
 |    |-- db.sqlite3
 |    +-- manage.py
 +-- venv/

با توجه به اینکه آدرس‌دهی فایل‌های دیگر درون فایل تست به صورت نسبی است باید آن را درست کنیم.

accounts/tests/test_view_signup.py

from django.contrib.auth.models import User
from django.core.urlresolvers import reverse
from django.urls import resolve
from django.test import TestCase

from ..views import signup
from ..forms import SignUpForm

حالا می خواهیم یک فایل تست جدید برای SignUpForm بسازیم. به این منظور فایل py را ایجاد می کنیم.

accounts/tests/test_form_signup.py

from django.test import TestCase
from ..forms import SignUpForm

class SignUpFormTest(TestCase):
    def test_form_has_fields(self):
        form = SignUpForm()
        expected = ['username', 'email', 'password1', 'password2',]
        actual = list(form.fields)
        self.assertSequenceEqual(expected, actual)

اگر بعدا بخواهیم به SignUpForm فیلدهایی مثل نام و نام خانوادگی کاربر را اضافه کنیم؛ نوشتن تست راحت تر خواهد بود.

ترجمۀ اختصاصی توسط تمدن

 

مطلب بعدی: بهبود قالب ثبت نام

مطلب قبلی: اضافه کردن فیلد ایمیل به فرم ثبت نام

0 پاسخ

دیدگاه خود را ثبت کنید

تمایل دارید در گفتگو شرکت کنید؟
نظری بدهید!

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *