【发布时间】:2018-04-03 05:12:37
【问题描述】:
我正在使用 nodejs 为我们的 API 创建端到端测试套件。在每个测试运行之前,我需要为该测试插入数据库记录。许多有问题的表不使用本机自动增量类型字段作为其主键。
(我知道,糟糕的数据库设计。但我无法控制。)
相反,它们使用 postgresql 通用的序列模式。但这是在 MS SQL Server 中。所以有一个存储过程可以获取下一个序列号用于表等。
当我开始设置测试时,我发现由于 javascript 的异步特性,我的事务相互冲突。基本上,事务获得相同的序列号,然后尝试相互提交。所以唯一约束失效了。
我想到的第一个解决方案(我对其他人持开放态度)是在运行任何测试之前设置所有数据库记录。但据我所知,Jasmine 的 beforeAll() 函数仅适用于它所在的文件。我需要一个 beforeAll() 函数,该函数在所有 Jasmine 测试在所有文件中运行之前运行。
茉莉花有类似的东西吗?如果没有,有没有办法可以在 nodejs 中创建一个控制器,在数据库中设置测试用例,然后以编程方式生成 jasmine?
提前致谢!
【问题讨论】:
标签: sql-server node.js postgresql jasmine