是否有一个简单的模拟示例来测试python中的连接数据库?我在谷歌找到了很多例子,但我很困惑。我想测试连接数据库并执行查询,以理解概念,例如游标。
谢谢答案 0 :(得分:2)
如果您想了解这些概念,我认为嘲笑并不是最适合您的解决方案。
我建议实际设置一个简单的数据库,例如,SQLite3,创建一些表,通过Python连接它,并做一些测试。
为了能够模拟某些东西,你需要知道你正在嘲笑的对象有什么样的行为,如果你想了解它是如何工作的,那么你最好的答案是实际尝试。
Sqlite3内置于最新版本的Python中,因此您可以通过打开python shell并输入import sqlite3
来测试它。
查看本教程,了解有关可以执行的操作的一些提示:
答案 1 :(得分:1)
我会像pcalcao说的那样建议你玩一个数据库。 Sqlite3将立即启动并运行。 sqlite3模块最近在python中实现。以下是来自http://docs.python.org/2/library/sqlite3.html
的官方文档的(稍加修改)示例import sqlite3
# You can change example.db to :memory: below if you don't want to save to
# file. But be aware that the data is (obviously) lost after the program has
# terminated.
conn = sqlite3.connect('example.db')
c = conn.cursor()
# Create table
c.execute('''CREATE TABLE stocks
(date text, trans text, symbol text, qty real, price real)''')
# Insert a row of data
c.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")
# Save (commit) the changes
conn.commit()
# Merged from another sample on the same page
t = ('RHAT',)
c.execute('SELECT * FROM stocks WHERE symbol=?', t)
print c.fetchone()
# We can also close the connection if we are done with it.
# Just be sure any changes have been committed or they will be lost.
conn.close()
答案 2 :(得分:0)
像其他人一样,你应该在SQLite上设置数据库并立即测试它。
但是如果你需要一些带有模拟的测试套件,你可以使用mockito包。它易于使用。只需模拟一些对象,记录行为并检查它是否正常。
答案 3 :(得分:0)
如果你想要嘲笑,可能会在你看到unittest时查看它。它适用于sqlite3。
您可以创建一个数据库连接正常工作的环境,但是所做的任何更改都不会持续。使用 setUp 创建测试依赖的环境的方法。 创建与内存中的新数据库连接很容易 - 只有数据库,并用所需的表和行填充该数据库。
tearDown 方法来撤消setUp方法所做的任何事情,以便 每个测试都可以在未受影响的环境版本中运行。自数据库 只在内存中,你需要做的只是关闭连接。