• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 持續集成之路——數據訪問層單元測試遇到的問題

    發表于:2013-07-22來源:Csdn作者:mydeman點擊數: 標簽:持續集成
    在編寫數據訪問層的單元測試時,遇到不少問題,有些問題可以很容易Google到解決方法,而有些只能自己研究解決。這里分享幾個典型的問題以及解決方法。 先交代一下用到的測試框架 Spring Test + SpringTestDbUnit + DbUnit。

      在編寫數據訪問層的單元測試時,遇到不少問題,有些問題可以很容易Google到解決方法,而有些只能自己研究解決。這里分享幾個典型的問題以及解決方法。

      先交代一下用到的測試框架 Spring Test + SpringTestDbUnit + DbUnit。

      一、先說一個低級的問題。

      Spring通過標簽提供對內存數據的支持,形如:

      [html] view plaincopyprint?

      

      

      可是在啟動時,卻總是提示錯誤:

      Caused by: org.xml.sax.SAXParseException; lineNumber: 31; columnNumber: 57; cvc-complex-type.2.4.c: 通配符的匹配很全面, 但無法找到元素 'jdbc:embedded-database' 的聲明。

      at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)

      at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)

      at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:437)

      ……

      翻來覆去對標簽修改了很多次,文檔和dtd也看了很多遍,始終沒有發現問題。最后無意間看到context文件頭部對標簽的聲明上好像有問題:

      [html] view plaincopyprint?

      

      xmlns:p="http://www.springframework.org/schema/p"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

      xmlns:context="http://www.springframework.org/schema/context"

      xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa"

      xmlns:task="http://www.springframework.org/schema/task" xmlns:aop="http://www.springframework.org/schema/aop"

      xmlns:jdbc="http://www.springframework.org/schema/jdbc"

      xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd

      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd

      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd

      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd

      http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd

      http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd

      http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/tx/spring-jdbc-3.2.xsd">

      

      xmlns:p="http://www.springframework.org/schema/p"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

      xmlns:context="http://www.springframework.org/schema/context"

      xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jpa="http://www.springframework.org/schema/data/jpa"

      xmlns:task="http://www.springframework.org/schema/task" xmlns:aop="http://www.springframework.org/schema/aop"

      xmlns:jdbc="http://www.springframework.org/schema/jdbc"

      xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.2.xsd

      http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd

      http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd

      http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd

      http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd

      http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd

      http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/tx/spring-jdbc-3.2.xsd">

      仔細看了下,原來當時從tx處復制聲明時,只是將最后的tx改成了jdbc,卻忘記了將路徑中tx改為jdbc。更改后,啟動正常。所有,如果有同學遇到類似的問題,應該先檢查頭部。

      二、外鍵關聯導致的刪除失敗。

      在剛開始寫測試時,每個用例單獨運行都沒有問題,可是一旦一起運行,就出現下面的異常:

      Tests run: 5, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 0.879 sec <<< FAILURE! - in com.noyaxe.nso.service.DeviceServiceTest

      testInitializedForBindedSpaceForceBind(com.noyaxe.nso.service.DeviceServiceTest) Time elapsed: 0.309 sec <<< ERROR!

      java.sql.SQLIntegrityConstraintViolationException: integrity constraint violation: foreign key no action; FK_L6IDVK78B2TLU8NO6EDJ0G6U8 table: CUSTOM_TABLE_COLUMN_SPACE_TYPE

      at org.hsqldb.jdbc.Util.sqlException(Unknown Source)

    原文轉自:http://blog.csdn.net/mydeman/article/details/9374621

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>