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

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 H2 JPA 測試中更新 @Id(使用身份策略)

在 H2 JPA 測試中更新 @Id(使用身份策略)

慕無忌1623718 2022-06-30 17:54:49
我有一個(gè)測試檢查我使用 H2 進(jìn)行測試的最后插入的 id@Entity@Datapublic class Guy implements Serializable {  @Id  @GeneratedValue(strategy = GenerationType.IDENTITY)  @Column(nullable = false)  protected Long id;  @Column(nullable = false)  protected String name;}這是測試@Testpublic void getTest() {  String jsonResponse = "{\"name\":\"andrew\"}";  Response response = given().body(jsonResponse).header("Content-Type",  "application/json").header("Client", 123).post("/thin/guy");  assertEquals(HttpServletResponse.SC_CREATED,response.getStatusCode());  //here the record was created  JSONObject jsonObject = new JSONObject(response.getBody().print());  Response resGet = given().header("Client",123).get("/thin/guy/"+String.valueOf(jsonObject.get("id")));  assertEquals(HttpServletResponse.SC_OK, resGet.getStatusCode());  //this is the response "{\"id\":1,\"name\":\"andrew\"}"  JSONObject getGuy = new JSONObject(resGet.getBody().print());  assertEquals(5000L,Long.valueOf(getGuy.get("id").toString()));}我如何才能使僅在測試范圍內(nèi)運(yùn)行的 H2database 返回插入的 id,其 de 值例如為 5000。有可能在測試范圍內(nèi)為實(shí)體 Guy 設(shè)置星值?謝謝!
查看完整描述

1 回答

?
一只斗牛犬

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊

不要檢查新創(chuàng)建對象的 ID 的實(shí)際值。

  • 沒有理由檢查 id。id 由數(shù)據(jù)庫引擎生成,但您在測試期間使用不同的引擎,因此您的測試用例將測試您的測試環(huán)境的行為......

  • 測試可以以隨機(jī)順序運(yùn)行,因此當(dāng)您添加更多測試或更改測試數(shù)據(jù)時(shí),您的舊測試將開始失敗。

如果你真的想測試一些東西,那么測試新創(chuàng)建的對象的屬性(正如XtremeBaumer建議的那樣)。或者你可以測試創(chuàng)建時(shí)返回的對象是否與GET請求時(shí)返回的對象完全相同。

assertEquals(jsonObject, testGuy);


查看完整回答
反對 回復(fù) 2022-06-30
  • 1 回答
  • 0 關(guān)注
  • 161 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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