我是使用SQL数据库的新手,但我遇到了测试我的数据库的问题。出于安全原因,任何查询或更新都是通过存储过程完成的。
对等方建议我使用存储过程来测试其他存储过程。这是对我的存储过程进行单元测试的好或坏解决方案,以确保它们正在做他们想要做的事情吗?
答案 0 :(得分:9)
我使用Visual Studio找到了一个很好的解决方案: Visual Studio Unit Testing
它允许您为SQL存储过程创建单元测试,您也可以使用正则表达式填充数据库 - 非常酷的东西。
答案 1 :(得分:5)
答案 2 :(得分:1)
我不知道哪个工具可以对SQL语句或存储过程进行单元测试。 我经常编写SQL脚本来测试它。
有时写一些像
这样的断言语句IF EXISTS (SELECT * FROM XX INNER JOIN XXX ON XXXXXXXX WHERE XXX=XXX)
RAISEERROR XXXXXX
如果抛出某些异常或错误,则可以检查存储过程。
但这是浪费时间。
我通常在大多数时间检查存储过程的所有执行路径,然后测试期望点的主要错误。
答案 3 :(得分:1)
我一直使用TST作为SQL Server的测试框架,结果非常好。 它运作良好,我甚至可以将它作为我们CI城市环境的一部分进行整合。
关键是如何设置测试数据。无论您选择哪种测试框架,请务必应用Test Data Builder模式。如果不这样做,您可能会很快得到一些测试重构问题。
答案 4 :(得分:1)
dbunit.org的DbUnit是一个很好的框架。另一个很棒的工具是来自tsqlt.org的TSqlUnit和tsqlt。
答案 5 :(得分:0)
我一直在使用 TestContainer(Mysql) 来模拟 mysql 服务器。 使用 Kotlin/Java JUnit5 作为测试运行器。 所以在测试用例中,它会