应用程序使用 tinyDB 将数据保存到 json 文件中。如果某些数据已包含在数据库文件中,我需要进行单元测试。
我正在变量 db 的 setUP 方法中创建一个备用数据库设置。我收到以下错误。为什么正在测试的函数中的命名空间不能使用 db 变量?
运行单元测试时,我得到:
ERROR: test_contains (__main__.TestDB)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test.py", line 65, in setUp
print type(db)
NameError: global name 'db' is not defined
在 project/app/sandbox.py 中测试的代码
from tinydb import TinyDB, Query
db = TinyDB('db.json')
Check_keyword = Query()
def test_db(keyword):
if db.contains(Check_keyword.keyword == keyword ):
print "keyword already in db"
return True
项目/test.py 中的单元测试
from tinydb import TinyDB, Query
from app.sandbox import test_db
class TestDB(unittest.TestCase):
def setUp(self):
self.db = TinyDB('test_db.json')
self.Check_keyword = Query()
def test_contains(self):
data = "doctor salarybljkhl"
result = test_db(data)
self.assertEqual(result, True)