第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java單元測試如何測試修改數(shù)據(jù)庫部分的代碼?

Java單元測試如何測試修改數(shù)據(jù)庫部分的代碼?

紫衣仙女 2019-03-01 10:43:39
對于各種數(shù)據(jù)庫的CRUD操作,都要寫對應的單元測試。對于查找這樣并沒有太多的問題,但是對于增刪改的話這樣就會有問題,由于代碼是在生產(chǎn)環(huán)境中運行,所以不能真的進行真的進行改動。 現(xiàn)在我想到的是方案是另外創(chuàng)建一個用于開發(fā)的數(shù)據(jù)與生產(chǎn)環(huán)境中的數(shù)據(jù)庫分開,但是這樣的話有些麻煩。請問在企業(yè)真實的開發(fā)流程中對于要對數(shù)據(jù)庫修改的代碼的單元測試一般都是怎樣做的? 我簡單的看了一下mockito的介紹,好像沒有找到好的解決方案。大家能否給一下建議或者推薦一下這方面的資料。 注釋:在IBM社區(qū)看到這樣一段對于單元測試的介紹: 單元測試要易于執(zhí)行,單元測試的執(zhí)行不應該需要配置等繁瑣操作就可以運行。如果單元測試代碼包含訪問數(shù)據(jù)庫、網(wǎng)絡等,這個測試就不是真正的單元測試。 一種說法是單元測試是不允許連接真實的數(shù)據(jù)庫的,所以一切數(shù)據(jù)庫操作都要mock,那么數(shù)據(jù)庫部分的代碼到底應該怎么測試?
查看完整描述

5 回答

?
米脂

TA貢獻1836條經(jīng)驗 獲得超3個贊

可以使用h2完成單元測試。一般企業(yè)級開發(fā)都有自己的測試環(huán)境的,直接連數(shù)據(jù)庫測試也沒太大的問題

查看完整回答
反對 回復 2019-03-01
?
慕絲7291255

TA貢獻1859條經(jīng)驗 獲得超6個贊

  1. 你這個不是單元測試Unit Test,是集成測試Integration Test

  2. 不應該使用h2等內(nèi)存數(shù)據(jù)庫,因為這些數(shù)據(jù)庫的語法、特性和你生產(chǎn)數(shù)據(jù)庫不同,很可能會導致測試失敗

  3. 如果你用Spring,則參考Spring官方文檔中關(guān)于Integration Test章節(jié)

查看完整回答
反對 回復 2019-03-01
?
慕尼黑5688855

TA貢獻1848條經(jīng)驗 獲得超2個贊

用內(nèi)存數(shù)據(jù)庫來解決該問題。引入內(nèi)存數(shù)據(jù)庫之后需要在代碼中管理ddl腳本和必要的初始化數(shù)據(jù)dml腳本,
每次跑單元測試時啟動內(nèi)存數(shù)據(jù)庫,刷ddl和dml腳本,然后執(zhí)行單元測試邏輯,推薦管理數(shù)據(jù)庫腳本工具有flyway和liquibase

查看完整回答
反對 回復 2019-03-01
?
墨色風雨

TA貢獻1853條經(jīng)驗 獲得超6個贊

對于數(shù)據(jù)庫層的測試屬于acceptance tedt,之所以不能再寫單元測試是因為數(shù)據(jù)庫層的操作已經(jīng)是最底層了。沒有什么可以mock的了。

查看完整回答
反對 回復 2019-03-01
?
瀟湘沐

TA貢獻1816條經(jīng)驗 獲得超6個贊

spring Junit 測試可以在測試類上面注解@TransactionConfiguration(transactionManager="transactionManager", defaultRollback=true)
這樣就能跑并且跑完以后,數(shù)據(jù)庫是不會變化的,因為跑完了數(shù)據(jù)就會回滾

查看完整回答
反對 回復 2019-03-01
  • 5 回答
  • 0 關(guān)注
  • 1347 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號