Dar*_*ech 5 python unit-testing test-suite mongoengine flask
我在Flask中有一个小应用程序,我想配合测试.我之前使用过Django测试,而我只是想要掌握Flask中的低级功能.
我的测试目前看起来像这样:
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='john@example.com')
u.save()
Run Code Online (Sandbox Code Playgroud)
我知道这是错误的,因为测试通过但我在数据库中添加了一个条目.如何在不污染数据库的情况下测试用户的创建?我认为app.config['TESTING']这里有一些意义.
任何帮助非常感谢.
我知道有两种方法:
1.单独的测试数据库
这是Django自动进行单元测试的功能.它只是使用一个单独的数据库进行测试,它在每次测试运行之前和之后都会清除.你可以手动实现这样的东西.
2.使用Mocking避免实际使用数据库
对于大多数情况,这是更优选的方法.您使用模拟来模拟各种函数,以便测试实际上不会在真实数据库中创建/编辑/删除信息.这样做有多种原因,尤其是单元测试的性能/速度.
| 归档时间: |
|
| 查看次数: |
2622 次 |
| 最近记录: |