5 回答

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超3個(gè)贊
單元測(cè)試中使用數(shù)據(jù)庫,可以考慮兩種方案:
搭建一個(gè)長(zhǎng)期使用的測(cè)試數(shù)據(jù)庫,作為單元測(cè)試,測(cè)試開始前或完成后清空無關(guān)數(shù)據(jù),即可保證測(cè)試的可重復(fù)性。缺點(diǎn)是多個(gè)人同時(shí)運(yùn)行單元測(cè)試時(shí),可能會(huì)失敗。
使用內(nèi)存數(shù)據(jù)庫(如 H2)。優(yōu)點(diǎn)是無需清空無關(guān)數(shù)據(jù),缺點(diǎn)是要將數(shù)據(jù)庫初始化過程(如建表語句)納入單元測(cè)試中。如果初始化很復(fù)雜,也會(huì)影響單元測(cè)試的效率。
至于如何驗(yàn)證查詢結(jié)果,基本上根據(jù)業(yè)務(wù)邏輯來。比如我單元測(cè)試運(yùn)行到這里,查詢這個(gè)一定會(huì)返回 27 條記錄,那就驗(yàn)證返回記錄數(shù)是否為 27。其他情況可以自己設(shè)計(jì)。

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
使用spring的事務(wù)控制啊
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:applicationContext-database.xml",
"classpath:applicationContext.xml"})
@Transactional
public abstract class BaseSpringTest {
protected final Logger logger = LoggerFactory.getLogger(getClass());
}
像這樣,默認(rèn)是會(huì)回滾的
添加回答
舉報(bào)