测试代码,修改数据库而不更改数据库状态

时间:2018-05-16 06:14:39

标签: sql node.js unit-testing dbunit

如何测试一个。实际修改数据库而不实际更改数据或数据库状态的函数。我们如何使用dbunit实现它?

我有一个模型功能

const newValue = await app.models.module.functionname({
       id: '005q21', typoe: 'XXX', isActive: false
});

实际上在db中写入一行并返回newValue类型是一个对象。如何编写实际在生产中运行的单元测试,并在不更改实时数据的情况下验证针对数据库的功能。 (使用dbunit)

我正在使用mocha编写node.js / sql应用程序的测试

1 个答案:

答案 0 :(得分:0)

  

我如何编写一个实际上在生产和运行中运行的单元测试   根据数据库验证函数

这是dbUnit的标准功能,所以从PrepAndExpectedTestCase之类的* TestCase方法开始。

让dbUnit比较预期的数据,它会为你检查数据库,非破坏性正常。

  

不改变实时数据

  1. 不要配置任何准备数据,也不会插入任何行。
  2. 在配置的数据库测试器上,将其配置为不更新表:

    一个。将SetUpOperation设置为DatabaseOperation.NONE

    湾将TearDownOperation设置为DatabaseOperation.NONE

    请注意,将TearDownOperation设置为DatabaseOperation.NONE时,测试创建的行将保留在数据库中。这可能是您想要的,但通常希望dbUnit在完成时清理已创建的行(所有行或特定行;请参阅DatabaseOperation选项)。