Update tests.py

master
zxc 4 months ago
parent 8bb5d004d7
commit b243aefa4a

@ -8,57 +8,85 @@ from .models import OwnTrackLog
# Create your tests here.
# 定义测试类继承自Django的TestCase用于测试OwnTrackLog相关功能
class OwnTrackLogTest(TestCase):
# 测试前的初始化方法,会在每个测试方法执行前调用
def setUp(self):
# 创建一个测试客户端用于模拟HTTP请求
self.client = Client()
# 创建一个请求工厂,用于构造更复杂的请求对象(本测试中未实际使用)
self.factory = RequestFactory()
# 核心测试方法测试OwnTrackLog的相关接口和功能
def test_own_track_log(self):
# 1. 测试正常提交位置数据
# 构造符合要求的测试数据包含tid、lat、lon三个必要字段
o = {
'tid': 12,
'lat': 123.123,
'lon': 134.341
}
# 模拟POST请求提交数据到日志记录接口
self.client.post(
'/owntracks/logtracks',
json.dumps(o),
content_type='application/json')
'/owntracks/logtracks', # 请求的URL
json.dumps(o), # 将数据序列化为JSON字符串
content_type='application/json' # 指定内容类型为JSON
)
# 验证数据库中是否成功创建了一条记录
length = len(OwnTrackLog.objects.all())
self.assertEqual(length, 1)
# 2. 测试提交不完整数据缺少lon字段
o = {
'tid': 12,
'lat': 123.123
'lat': 123.123 # 缺少经度lon字段
}
# 再次发送POST请求
self.client.post(
'/owntracks/logtracks',
json.dumps(o),
content_type='application/json')
content_type='application/json'
)
# 验证数据库记录数未增加(因数据不完整未创建新记录)
length = len(OwnTrackLog.objects.all())
self.assertEqual(length, 1)
# 3. 测试未登录状态访问受保护页面
# 访问地图展示页面
rsp = self.client.get('/owntracks/show_maps')
# 验证未登录时被重定向状态码302
self.assertEqual(rsp.status_code, 302)
# 4. 创建超级用户并登录,测试登录后访问功能
# 创建超级用户
user = BlogUser.objects.create_superuser(
email="liangliangyy1@gmail.com",
username="liangliangyy1",
password="liangliangyy1")
password="liangliangyy1"
)
# 使用测试客户端登录
self.client.login(username='liangliangyy1', password='liangliangyy1')
# 手动创建一条位置记录
s = OwnTrackLog()
s.tid = 12
s.lon = 123.234
s.lat = 34.234
s.save()
# 测试登录后访问各接口是否正常状态码200
rsp = self.client.get('/owntracks/show_dates')
self.assertEqual(rsp.status_code, 200)
rsp = self.client.get('/owntracks/show_maps')
self.assertEqual(rsp.status_code, 200)
rsp = self.client.get('/owntracks/get_datas')
self.assertEqual(rsp.status_code, 200)
# 测试带日期参数的接口请求
rsp = self.client.get('/owntracks/get_datas?date=2018-02-26')
self.assertEqual(rsp.status_code, 200)

Loading…
Cancel
Save