如何解决为什么在django测试期间未创建某些数据
我正在测试Django应用程序。我已经在setUp
方法中创建了JobSeeker和Employer数据。现在test_edit_job_seeker_data
失败并显示错误。它说找不到资源。我猜测JobSeeker
数据从未创建,但是Employer
数据已创建。这是测试用例的代码。
class TestViewsLiveServer(StaticLiveServerTestCase):
def setUp(self):
self.browser = webdriver.Firefox()
date_str = "2020-09-15"
temp_date = parse_date(date_str)
# Create a list of employer objects
Employer.objects.create(
firstname="Patrice",lastname="Chaula",phone_number="+263782841339",physical_address="4790 Mkoba 12,Gweru,Midlands",email_address="chaulapsx@gmail.com",job_title="Carpenter to adjust my kitchen unit",job_description="I am searching for a carpenter to fix my kitchen unit.",status=False,date_needed=temp_date
)
date_str = "2020-09-20"
temp_date = parse_date(date_str)
Employer.objects.create(
firstname="John",lastname="Doe",email_address="johndoe@gmail.com",job_title="Motor mechanic for engine overhaul",job_description="I am currently looking for a motor mechanic for my engine overhaul.",date_needed=temp_date
)
# Create a list of job seeker objects
JobSeeker.objects.create(
firstname="Patrice",job_title="Carpenter to create me something",date_applied=temp_date
)
date_str = "2020-09-20"
temp_date = parse_date(date_str)
JobSeeker.objects.create(
firstname="John",date_applied=temp_date
)
def test_edit_employer_data(self):
url = self.live_server_url + reverse("edit-employer",kwargs={"pk": 1})
self.browser.get(url)
self.browser.find_element_by_id("id_firstname").clear()
self.browser.find_element_by_id("id_firstname").send_keys("Tapiwa")
self.browser.find_element_by_id("id_lastname").clear()
self.browser.find_element_by_id("id_lastname").send_keys("Chikerema")
self.browser.find_element_by_id("update-btn").click()
employer = Employer.objects.get(id=1)
self.assertEquals(employer.firstname,"Tapiwa")
self.assertEquals(employer.lastname,"Chikerema")
def test_edit_job_seeker_data(self):
url = self.live_server_url + reverse("edit-job-seeker",kwargs={"pk": 1})
self.browser.get(url)
self.browser.find_element_by_id("id_firstname").clear()
self.browser.find_element_by_id("id_firstname").send_keys("Tapiwa")
self.browser.find_element_by_id("id_lastname").clear()
self.browser.find_element_by_id("id_lastname").send_keys("Chikerema")
self.browser.find_element_by_id("update-btn").click()
jobseeker = JobSeeker.objects.get(id=1)
self.assertEquals(jobseeker.firstname,"Tapiwa")
self.assertEquals(jobseeker.lastname,"Chikerema")
def tearDown(self):
self.browser.close()
以上只是大文件的一部分。整个文件如下。我这样说是为了我的代码设置可能有问题
from django.test import TestCase,Client
from django.contrib.staticfiles.testing import StaticLiveServerTestCase
from django.urls import reverse
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from employment_agent.models import *
from django.utils.dateparse import parse_date
import json
import time
class TestViews(TestCase):
def setUp(self):
self.client = Client(HTTP_USER_AGENT="Mozilla/5.0")
self.url = reverse("home")
date_str = "2020-09-15"
temp_date = parse_date(date_str)
# Create a list of employer objects
Employer.objects.create(
firstname="Patrice",job_description="I am searching for a carpenter to create me something.",date_needed=temp_date
)
# Create a list of job seeker objects
JobSeeker.objects.create(
firstname="Patrice",date_applied=temp_date
)
# Test if the homepage is accessible and using the right template
def test_employer_agent(self):
response = self.client.get(self.url)
self.assertEquals(response.status_code,200)
self.assertTemplateUsed(response,"employment_agent/home.html")
# Test if the employers index page is reachable and is using the right template
def test_employers_index_page_get(self):
response = self.client.get(reverse("employers"))
self.assertEquals(response.status_code,200)
self.assertTemplateUsed(
response,"employment_agent/employers_index.html")
# Test if the employer data can be deleted successfully
def test_delete_employer_data(self):
url = reverse("delete-employer",kwargs={"pk": 1})
response = self.client.post(url)
self.assertEquals(response.status_code,302)
# Test what happens if we try to delete data that do not exist
def test_delete_employer_data_does_not_exist(self):
url = reverse("delete-employer",kwargs={"pk": 9})
response = self.client.post(url)
self.assertEquals(response.status_code,404)
# Test if specific employer data is viewable
def test_view_employer_data(self):
url = reverse("view-employer",kwargs={"pk": 1})
response = self.client.get(url)
self.assertContains(response,"Patrice")
self.assertContains(response,"Chaula")
self.assertContains(response,"Carpenter to create me something")
# Test try to view employer data that does not exist
def test_view_employer_data_does_not_exist(self):
url = reverse("view-employer",kwargs={"pk": 9})
response = self.client.get(url)
self.assertEquals(response.status_code,404)
# Test searching employer data
def test_search_employers(self):
url = reverse("search-employers",kwargs={"page": 1})
response = self.client.post(
url,{"status": 0,"job_title": "to create"})
# Check if the right data is contained in the response
self.assertContains(response,"Carpenter to create me something")
# Now test a GET request ie searching using session data
response = self.client.get(url)
# Check if the right data is contained in the response
self.assertContains(response,"Carpenter to create me something")
# Test if specific job seeker data is viewable
def test_view_job_seeker_data(self):
url = reverse("view-job-seeker","Carpenter to create me something")
class TestViewsLiveServer(StaticLiveServerTestCase):
def setUp(self):
self.browser = webdriver.Firefox()
date_str = "2020-09-15"
temp_date = parse_date(date_str)
# Create a list of employer objects
Employer.objects.create(
firstname="Patrice","Chikerema")
def tearDown(self):
self.browser.close()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。