2012-11-20 53 views
2

是否有一個簡單的模擬示例來測試python中的連接數據庫?我發現很多谷歌的例子,但我很困惑。我想測試連接數據庫並執行查詢,以瞭解概念,例如遊標。模擬數據庫python

謝謝

回答

1

我會作爲pcalcao說只是建議你玩數據庫。 Sqlite3會讓你立即開始運行。最近,python實現了sqlite3模塊。下面是從官方文檔(稍微修改)例如在: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

如果使用文件名':memory:',您還可以創建數據庫的內存版本。 – jszakmeister

+0

是的。我並不在乎這一點。但它是相關的。添加到我的答案。謝謝! :) –

2

如果你想了解的概念,我想嘲笑是不是你的最佳解決方案。

我會建議實際設置一個簡單的數據庫,例如,SQLite3,創建一些表,通過Python連接到它,並做一些測試。

爲了能夠嘲笑某些事情,您需要知道您對嘲笑的對象有什麼樣的行爲,如果您想了解它是如何工作的,那麼您的最佳答案就是實際嘗試。

Sqlite3內置於最新版本的Python中,因此您可以通過簡單地打開Python shell並鍵入import sqlite3來測試它。

看看這個教程你可以做一些提示:

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

0

像其他人一樣說,你應該建立數據庫SQLite和測試,立竿見影。

但是,如果你需要一些測試套件與嘲笑,你可以使用mockito包。它很容易使用。只是嘲笑一些物體,記錄行爲並檢查它是否正常。

+0

感謝您的所有答覆。我無法回答,所以我移動討論:http://stackoverflow.com/questions/13471604/concept-mocking-db-python – user1410756

0

如果你想嘲笑,可以看看unittest,而你在它。它適用於sqlite3。

您可以創建一個數據庫連接正常工作的環境,但所做的任何更改都不會持續。使用setUp 創建測試所依賴的環境的方法。 創建與內存中數據庫的新數據庫連接很容易,並且使用所需的表和行填充該數據庫。

拆卸方法撤銷任何設置方法一樣,使 每個測試可以在環境中的不變版本上運行。由於數據庫 只在內存中,所以您只需關閉連接即可。