我最近开始使用 TST (tst.codeplex.com) 测试存储过程,发现它非常有用 - 然而,一个缺点是我们无法隔离依赖项和“模拟”其他 SP/函数调用(就像我们对 C# 对象依赖项所做的那样,例如)。我不介意花一些时间将这个功能添加到 TST 或编写一个新框架,但我真的不知道如何开始。
有任何想法吗?任何帮助表示赞赏。
PS:我知道 SP 的设计从来没有考虑到测试,但这对于已经存在 100 多个 SP 的遗留项目来说可能是一个巨大的福音。
我最近开始使用 TST (tst.codeplex.com) 测试存储过程,发现它非常有用 - 然而,一个缺点是我们无法隔离依赖项和“模拟”其他 SP/函数调用(就像我们对 C# 对象依赖项所做的那样,例如)。我不介意花一些时间将这个功能添加到 TST 或编写一个新框架,但我真的不知道如何开始。
有任何想法吗?任何帮助表示赞赏。
PS:我知道 SP 的设计从来没有考虑到测试,但这对于已经存在 100 多个 SP 的遗留项目来说可能是一个巨大的福音。
确实有助于先前的答案,虽然重命名方法远非理想,但它确实有效。我在一篇针对 SSDT 数据库项目的博客文章中对其进行了演示,但原理是相同的:
tSQLt 对 mocking 有全面更好的支持:
我自己一直在为类似的事情苦苦挣扎,我想知道以下是否可能是一种模拟 SP 的方法。
在运行需要模拟 SP 的测试之前,测试框架应该:
我们没有使用 TST,但我想我会在我们的(手动)SQL 测试框架中添加类似的东西。几周后不会去,所以我想知道这是否适合你。