tsqlt faketable在执行单元测试后不回滚

35g0bw71  于 2021-08-01  发布在  Java
关注(0)|答案(1)|浏览(288)

我有一个非常简单的单元测试,测试tsqlt.faketable的功能。但是,在运行命令并插入数据之后,它不会回滚到以前的状态。
当前表格:
[product01].[批次]

执行下面的代码后,表不会回滚到上面的代码。它覆盖了数据,我可以看到在tables下创建的temp对象。

CREATE PROCEDURE [test_product].[test Given batch size of 1000 and batch qty of 2 When sp_insert_batch is called Then two entries populated in batch table]

AS

BEGIN

DECLARE @batch_count INT = 2
DECLARE @batch_size INT = 1000
DECLARE @job_number NVARCHAR(10) = '1000000000'

DECLARE @actual_batch_count INT
DECLARE @actual_batch_size INT

-- Arrange

EXEC tSQLt.FakeTable '[product01].[batch]'

INSERT INTO product01.batch(batch_id,batch_qty,date_from, date_to, job_number)
VALUES('6003',100,'2020-06-01', '2020-06-30','5000000000')

-- Act

-- Assert

END

运行上述代码后选择批处理表:

我还没有编写实际的Assert逻辑,但是我不明白为什么不回滚表。有什么想法吗?

unguejic

unguejic1#

tsqlt测试不能直接执行。您需要始终使用以下run方法之一 tSQLt.Run 如果你直接调用测试 EXEC your.test; ,不会发生回滚,其他tsqlt特性也不会工作。

相关问题