agc*_*nti 5 python django unit-testing
我正在对我的家庭观点进行基本测试.从shell中记录客户端时,同一行代码在使用测试套件时无法记录客户端.
使用Django测试套件时记录客户端的正确方法是什么?
要么
知道为什么客户端没有使用我当前的方法登录吗?
壳牌测试:
import unittest
from django.test.client import Client
from django.test.utils import setup_test_environment
setup_test_environment()
client = Client()
login = client.login(username='agconti', password='password')
# login --> evals to True
Run Code Online (Sandbox Code Playgroud)
Django测试套件:
#### View Tests ####
import unittest
from django.test.client import Client
from shopping_cart.models import Store, Order, Item, Transaction
class Home_ViewTest(unittest.TestCase):
def setUp(self):
self.client = Client()
# login user
login = self.client.login(username='agconti', password='password')
# Check login
self.assertEqual(login, True)
def test_details(self):
# get the home view
response = self.client.get('/')
self.assertEqual(response.status_code, 200)
# Check that the rendered context is not none
self.assertTrue(response.context['stores'] != None)
# self.assertEqual(login, True) --> login evals to False, raises the assertion
Run Code Online (Sandbox Code Playgroud)
dm0*_*514 22
应该创建一个测试用户.就像是:
def setUp(self):
self.client = Client()
self.username = 'agconti'
self.email = 'test@test.com'
self.password = 'test'
self.test_user = User.objects.create_user(self.username, self.email, self.password)
login = self.client.login(username=self.username, password=self.password)
self.assertEqual(login, True)
Run Code Online (Sandbox Code Playgroud)
在你的shell测试中,用户可能已经存在于你的数据库中,而在你的unittest中可能没有用户......
| 归档时间: |
|
| 查看次数: |
3443 次 |
| 最近记录: |