我有這樣的方法如下:如何測試具有數據庫查詢以更新數據的方法?
public void ImportDataCommand()
{
// some data validation logic here
if (some_criteria_is_true)
{
// Call to a method which uses sql queries to update some records
UpdateRecords();
}
else
{
// Call to a method which uses sql queries to delete some records
DeleteRecords();
}
}
- 我怎麼能單元測試方法
UpdateRecords()
和DeleteRecords()
? (如果可能的話) - 我目前的模式, 的氣味?
- 有沒有更好的方法來處理,當你有一些數據 更新邏輯,這取決於一些數據驗證邏輯和一些 條件邏輯?
在這方面的任何幫助,非常感謝。請讓我知道,如果你需要更多的信息,或者如果有什麼不明確的。
更新:
我沒有興趣在這裏嘲諷的數據源。我想確保我的sql查詢是否正確,並且正在做正確的更新。對不起,如果你想,我想測試我的驗證邏輯,而不是我的數據更新邏輯(sql)。
我確實有嘲笑框架的經驗,我成功地使用它們爲我的正常應用程序邏輯編寫單元測試。
你的方法不會返回任何東西 - 通常,單元測試會給你一堆參數,並測試返回的值是否符合期望值。 –
@尼維爾:對。比方說,我想測試一個應用程序命令,它將數據存儲/更新到數據庫中。有沒有辦法做到這一點? - 我已經使用NUnit爲我的正常應用程序邏輯成功編寫了單元測試。 –
執行此操作的常用方法是使用模擬框架,因此您可以將測試與其下的特定數據庫分離。 –