如何使用 SSDT 对使用不同输入的函数进行单元测试
How to use SSDT to unit test a function using different inputs
我正在查看创建 SSDT Unit Tests 的文档。所有示例都显示了测试存储过程。但是,如果我想测试标量或 table 值函数,我可以在其中验证给定输入的预期输出怎么办。
我知道 tSQLt。尽管在该框架中创建单元测试非常容易,但它也与开发数据库紧密绑定。我更喜欢在单独的项目中进行测试。事实上,单元测试项目中的测试对我来说是一个巨大的吸引力,这就是为什么我决定花我的精力来获得满足我需要的 SSDT 单元测试。
我想出了如何创建一个测试条件。 (见截图)。
在测试代码块中,我定义了输入值@ofDate = '2/1/2018'
并在属性window中定义了预期输出。
DECLARE @RC AS DATE, @ofDate AS DATE;
SELECT @RC = NULL,
@ofDate = '2/1/2018';
SELECT @RC = [dbo].[GetMostRecentThursday](@ofDate);
SELECT @RC AS RC;
我可以点击 "Test Conditions" 面板中的绿色加号并为标量值添加新的测试条件(例如 "if date is '2/2/2018' then return '2/1/2018'"),但我没有看到设置唯一性的方法输入新的测试条件。
换句话说,如何为特定的测试条件定义唯一的输入参数?我是否需要创建另一个单元测试文件来测试新条件?
@user7396598 给了我需要弄清楚的提示。关键是创建一个新的单元测试,但不是一个新的单元测试class。
尽管有一种 "shorter" 方法可以执行以下操作,但我更喜欢我现在介绍的方法,因为编码器出错的可能性较小。您的样板已正确设置,因此您可以将重点放在需要为测试设置的特定项目上。
- 右键单击您正在测试的功能并创建单元测试。
- 这是他们的关键:将单元测试插入到预先存在的测试中class。
- 看起来很眼熟,但这就是重点。您需要做的就是设置输入值和测试条件。
这就是您添加新测试的方式。
我正在查看创建 SSDT Unit Tests 的文档。所有示例都显示了测试存储过程。但是,如果我想测试标量或 table 值函数,我可以在其中验证给定输入的预期输出怎么办。
我知道 tSQLt。尽管在该框架中创建单元测试非常容易,但它也与开发数据库紧密绑定。我更喜欢在单独的项目中进行测试。事实上,单元测试项目中的测试对我来说是一个巨大的吸引力,这就是为什么我决定花我的精力来获得满足我需要的 SSDT 单元测试。
我想出了如何创建一个测试条件。 (见截图)。
在测试代码块中,我定义了输入值@ofDate = '2/1/2018'
并在属性window中定义了预期输出。
DECLARE @RC AS DATE, @ofDate AS DATE;
SELECT @RC = NULL,
@ofDate = '2/1/2018';
SELECT @RC = [dbo].[GetMostRecentThursday](@ofDate);
SELECT @RC AS RC;
我可以点击 "Test Conditions" 面板中的绿色加号并为标量值添加新的测试条件(例如 "if date is '2/2/2018' then return '2/1/2018'"),但我没有看到设置唯一性的方法输入新的测试条件。
换句话说,如何为特定的测试条件定义唯一的输入参数?我是否需要创建另一个单元测试文件来测试新条件?
@user7396598 给了我需要弄清楚的提示。关键是创建一个新的单元测试,但不是一个新的单元测试class。
尽管有一种 "shorter" 方法可以执行以下操作,但我更喜欢我现在介绍的方法,因为编码器出错的可能性较小。您的样板已正确设置,因此您可以将重点放在需要为测试设置的特定项目上。
- 右键单击您正在测试的功能并创建单元测试。
- 这是他们的关键:将单元测试插入到预先存在的测试中class。
- 看起来很眼熟,但这就是重点。您需要做的就是设置输入值和测试条件。
这就是您添加新测试的方式。