我對自動化測試還相當陌生,想知道如何去編寫數據庫測試。我現在正在處理的項目是運行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