Tôi có một ứng dụng nhỏ trong Flask mà tôi muốn đi kèm với các bài kiểm tra. Tôi đã sử dụng các bài kiểm tra Django trước đây, và tôi chỉ bắt tay với các chức năng cấp thấp hơn trong Flask.Test Suite trong Flask với MongoEngine
xét nghiệm của tôi hiện trông như thế này:
import unittest
from config import app
from mongoengine import connect
from my_app.models import User
class TestCase(unittest.TestCase):
def setUp(self):
app.config['TESTING'] = True
app.config["MONGODB_DB"] = 'xxx'
connect(
'xxx',
username='heroku',
password='xxx',
host='xxx',
port=xxx
)
self.app = app.test_client()
def tearDown(self):
pass
def test_create_user(self):
u = User(username='john', email='[email protected]')
u.save()
Tôi biết rằng điều này là sai, bởi vì vượt qua bài kiểm tra nhưng tôi đã thêm một mục nhập vào cơ sở dữ liệu. Làm thế nào tôi nên kiểm tra việc tạo ra một người dùng mà không gây ô nhiễm cơ sở dữ liệu? Tôi đã giả định rằng app.config['TESTING']
có một số ý nghĩa ở đây.
Bất kỳ giúp nhiều đánh giá cao.
Tuyệt vời. Tôi đã đi đến kết luận này - tôi đã từng được sử dụng để Djago cung cấp 'ma thuật'. Có bất kỳ thư viện mocking tốt ra khỏi đó cho Flask? –
Bạn có thể sử dụng bất kỳ thư viện mô phỏng python nào (ví dụ 'mock'), nhưng đối với cơ sở dữ liệu, hãy tìm một số gói đã chế nhạo' mongoengine' hoặc 'pymongo'. Xem xét một câu hỏi khác: http://stackoverflow.com/a/16017141/880326. – tbicr
Mocking một giải pháp tốt hơn? Bạn phải nói đùa. Mocking là tuyệt vời để tránh các cuộc gọi API, tăng tốc độ kiểm tra (thử nghiệm một lớp) và tấn công cụ, nhưng việc sử dụng nó để tránh tạo nội dung trong DB giống như kiểm tra lái xe mà không cần ngồi trên đó. Số 1 Giải pháp đúng trong trường hợp này. –