我有这样的方法如下:如何测试具有数据库查询以更新数据的方法?
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为我的正常应用程序逻辑成功编写了单元测试。 –
执行此操作的常用方法是使用模拟框架,因此您可以将测试与其下的特定数据库分离。 –