我对自动化测试还相当陌生,想知道如何去编写数据库测试。我现在正在处理的项目是运行PostgreSQL,Sequelize作为Node.JS环境中的ORM。如果它很重要,我现在也使用Jest作为测试库。使用数据库进行自动化测试
0
A
回答
0
在我的应用程序中,我使用config
模块来控制不同环境的配置设置。运行测试时,process.env.APP_ENV
设置为test
,它将设置dialect
为sqlite
。请注意,您不会拥有任何数据或数据持久性,因此您需要使用测试所需的所有数据填充它。
包括sqlite3的
yarn add -D sqlite3
或
npm i -D sqlite3
配置
module.exports = {
database: {
name: 'dbname',
user: 'user',
password: 'password',
host: 'host',
host: 'host',
// Use "sqlite" for "test"
dialect: process.env.APP_ENV === 'test' ? 'sqlite' : 'mysql',
},
};
数据库/ Sequelize
// get our config
const config = require('../config');
... // code
const instance = new Sequelize(
config.database.name,
config.database.user,
config.database.password,
{
host: config.database.host,
// set the dialect, will be "sqlite" for "test"
dialect: config.database.dialect,
}
);
测试类(摩卡)
const TestUtils = require('./lib/test-utils');
describe('Some Tests',() => {
let app = null;
// run before the tests start
before((done) => {
// Mock up our services
TestUtils.mock();
// these are instantiated after the mocking
app = require('../server');
// Populate redis data
TestUtils.populateRedis(() => {
// Populate db data
TestUtils.syncAndPopulateDatabase('test-data',() => {
done();
});
});
});
// run code after tests have completed
after(() => {
TestUtils.unMock();
});
describe('/my/route',() => {
it('should do something', (done) => {
return done();
});
});
});
运行测试
APP_ENV=test ./node_modules/.bin/mocha
你可以使用ENV变量以其他方式设置的方言和连接参数,以及 - 以上只是基于我们已经用了很多支持的代码做了一个例子。
+0
这是完美的,非常感谢你的答案! – Calvin
相关问题
- 1. 使用JUnit进行自动化测试
- 2. 使用自动测试进行测试
- 3. 使用wd库进行自动化测试
- 4. 我如何使用测试数据库进行实习测试
- 5. 在Java中更改测试用例进行自动化测试
- 6. 使用Ruby Selenium Web驱动程序进行测试自动化
- 7. 使用嵌入式数据库进行弹簧启动测试
- 8. 使用Selenium和NUnit进行UI自动化测试测试执行顺序
- 9. 使用数据标签进行自动硒测试
- 10. 使用winium进行自动测试
- 11. 我是使用Selenium进行自动化测试的新手。我需要什么来运行自动化测试?
- 12. 使用播放列表进行自动化测试的订购测试用例
- 13. 使用GUI进行自动化网站测试
- 14. 使用Ruby on Rails进行自动化测试 - 最佳实践
- 15. 使用UI自动化进行单元测试
- 16. 如何使用虚拟机进行自动化测试?
- 17. 使用硒WebDriver进行自动化测试?
- 18. 使用Appium Selenium进行自动化测试iOS
- 19. 在iOS中使用多语言进行UI自动化测试
- 20. 使用Selenium和Cucumber进行Web服务测试自动化
- 21. WAXSIM使用Jenkins和xcodebuild进行自动化测试和构建
- 22. 使用Selenium进行微服务架构的测试自动化
- 23. 使用设备上的仪器进行自动化测试
- 24. 如何使用Selenium自动化我的网页进行测试
- 25. 使用c#进行API自动化测试#
- 26. 使用Maven进行Jmeter测试的自动化
- 27. 使用Frank/Cucumber进行XCode自动化测试
- 28. 我可以使用VS2010进行自动化MSTest测试吗?
- 29. 使用进程外数据库访问进行Rails测试?
- 30. 格式化XML数据进行测试
可以这么说,你不应该“为数据库写测试”。你应该为自己的代码编写测试。然后,该代码可能会与该数据库进行交互。当您处于测试模式时,您的代码将连接到单独的测试数据库,以便您的测试不会更改开发数据库中的数据。 –
FWIW - 编写使用序列化代码的测试时,我通常将sqlite分为我的“真实”数据库。如果这是有用的,我可以举一个摩卡咖啡的例子。 – doublesharp
感谢信息家伙! @doublesharp一个例子会非常有用,非常感谢! 所以,如果我正在阅读这个权利,我应该有一个“模拟”数据库,我运行我的函数来读取/写入/更新/删除请求并从中测试响应。有没有简单的方法将我的自动化测试指向我的“模拟”数据库? – Calvin