2

是否有一个简单的模拟示例来测试 python 中的连接数据库?我在谷歌上找到了很多例子,但我很困惑。我想测试一个连接数据库并执行一个查询,以理解概念,例如光标。

谢谢

4

4 回答 4

2

如果您想了解这些概念,我认为嘲笑不是您的最佳解决方案。

我建议实际设置一个简单的数据库,例如 SQLite3,创建一些表,通过 Python 连接到它,并进行一些测试。

为了能够模拟某些东西,你需要知道你对你模拟的对象的期望是什么,如果你想了解它是如何工作的,那么你最好的答案就是实际尝试一下。

Sqlite3 内置在最新版本的 Python 中,因此您只需打开 python shell 并输入import sqlite3.

查看本教程以获取有关您可以做什么的一些提示:

http://zetcode.com/db/sqlitepythontutorial/

于 2012-11-20T10:01:23.987 回答
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()
于 2012-11-20T10:00:26.523 回答
0

如果您想嘲笑,可能会使用时查看单元测试。它适用于 sqlite3。

您可以创建一个环境,其中数据库连接照常工作,但所做的任何更改都不会持续。使用setUp 方法创建测试所依赖的环境。很容易创建到仅内存数据库的新数据库连接,并使用所需的表和行填充该数据库。

tearDown方法来撤消 setUp 方法所做的任何事情,以便每个测试都可以在未触及的环境版本中运行。由于数据库仅在内存中,您需要做的就是关闭连接。

于 2012-11-20T10:15:48.570 回答
0

就像其他人说的那样,您应该在 SQLite 上设置数据库并立即对其进行测试。

但是如果你需要一些带有模拟的测试套件,你可以使用mockito包。它很容易使用。只需模拟一些对象,记录行为并检查是否正常。

于 2012-11-20T10:07:53.087 回答