亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 >
插入式持久性提供者的承諾:Kodo、OpenJPA和Hibernate
作者:網絡轉載 發布時間:[ 2013/2/27 14:47:53 ] 推薦標簽:

因為我們使用了O-R映射注釋表示Message類的實例與數據庫表和列之間的映射關系(或者說是哪個域值能夠作為Message實例的主標識符),所以JPA依賴關系已經移入這個Java類中。這些映射信息可以移到一個單獨的orm.xml中,從而使這個類恢復Pure Old Java Object (POJO)狀態并完善這種不明確的更接近域對象模型的方法。
編碼前的測試

JUnit測試用例通過JNDI查找與服務進行交互并檢驗兩個服務方法返回的是否為預期的結果。

TestJPAService.java

01 package junit;
02
03 import java.util.Properties;
04
05 import javax.naming.Context;
06 import javax.naming.InitialContext;
07
08 import service.JPAService;
09 import service.Message;
10 import junit.framework.TestCase;
11
12 /**
13  * A JUnit test case to verify that a Session Bean is using the correct provider.
14  *
15  * The test must be invoked with two mandatory Java System Properties:
16  * <li>
                       
jndi.name : the JNDI name of the registered Session Bean.
17  * <li>
                       
persistence.provider: The 
                       
logical name of the
18  * persistence provider. Allowed values are 
                       
kodo or 
                       
hibernate.
19  *
                       


20  * The optional Java System Properties are:
21  * <li>
                       
weblogic.user : The authenticated user to contact Weblogic server. Defaults to 
                       
weblogic
22  * <li>
                       
weblogic.password : The valid password to contact Weblogic server. Defaults to 
                       
weblogic
23  * <li>
                       
weblogic.url : The URL where Weblogic Server is running. Defaults to 
                       
t3://localhost:7001
24  *
25   *
26  * @author ppoddar
27  *
28  */
29 public class TestJPAService extends TestCase {
30   private static final String USER = System.getProperty("weblogic.user",     "weblogic");
31   private static final String PWD  = System.getProperty("weblogic.password", "weblogic");
32   private static final String URL  = System.getProperty("weblogic.url",    "t3://localhost:7001");
33   private static final String JNDI_NAME = System.getProperty("jndi.name");
34   private static final String PERSISTENCE_PROVIDER = System.getProperty("persistence.provider");
35  
36   private static JPAService service;
37  
38   /**
39    * Sets up the test by contacting Weblogic Server and looking up in JNDI
40    * for the registered Session Bean.
41    *
42    */
43   @Override
44   public void setUp() throws Exception {
45     assertNotNull("Must specify JVM System property -Djndi.name=<jndi> to run this test", JNDI_NAME);
46     assertNotNull("Must specify JVM System property -Dpersistence.provider=[kodo|hibernate] to run this test", PERSISTENCE_PROVIDER);
47     if (service == null) {
48           Properties p = new Properties();
49           p.put(Context.INITIAL_CONTEXT_FACTORY,  "weblogic.jndi.WLInitialContextFactory");
50           p.put(Context.SECURITY_PRINCIPAL,       USER);
51           p.put(Context.SECURITY_CREDENTIALS,     PWD);
52           p.put(Context.PROVIDER_URL, URL);
53           System.out.println("Contacting server " + URL + " as " + USER + " for " + JNDI_NAME);
54           InitialContext ctx = new InitialContext(p);
55           service = (JPAService)ctx.lookup(JNDI_NAME);
56     }
57   }
58  
59   /**
60    * Asserts that the Persistence Provider class name contains the 
                       
logical
61    * name of the intended provider i.e. 
                       
kodo or 
                       
hibernate.
62    *
63    */
64   public void testProvider() {
65     String actual = service.getProvider();
66     System.err.println("Logical Persistence Provider is [" + PERSISTENCE_PROVIDER + "]");
67     System.err.println("Actual  Persistence Provider is [" + actual + "]");
68     assertTrue("*** ERROR: " + actual + " is not provided by " + PERSISTENCE_PROVIDER, actual.indexOf(PERSISTENCE_PROVIDER) != -1);
69   }
70  
71   /**
72    * Simply logs (persists) a message via the remote service.
73    * The service will affix a timestamp with the persisted message it returns.
74    * Verifies that the timestamp against the time when the message has been
75    * sent. 
76    *
77    */
78   public void testLog() {
79     long senderTime = System.currentTimeMillis();
80     String body = "A message sent for logging on " + senderTime;
81     Message message = service.log(body);
82     long createTime = message.getTimestamp().getTime();
83     long elapsedTime = createTime - senderTime;
84     System.err.println("Persisted Message [id:" + message.getId() + " timestamp:" +
85         message.getTimestamp().getTime() + " body:"+ message.getBody() + "]");
86     System.err.println("Time elapsed between the message to send and persisted is " + elapsedTime + "ms");
87     assertTrue(elapsedTime>=0);
88   }
89 }

上一頁123456下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 男人和女人日批视频 | 最好看的中文字幕2019免费 | 又爽又黄又无遮挡网站 | 手机看日韩片 | 一级做a爰片久久毛片武则天 | 欧美一级做性受 | 亚洲男女免费视频 | 成人a视频高清在线观看 | 影视精品网站入口 | 日本涩涩网站 | 国产一区二区在线播放 | 男女黄色毛片 | 精品欧美日韩一区二区三区 | 黄色片视频网站 | 俄罗斯一级毛片免费播放 | 在线视频 二区 | 各类毛片 | 永久免费视频v片www | 在线观看视频欧美 | 美女视频黄.免费网址 | 日韩一区二区三区视频在线观看 | 黄色网址视频在线观看 | www.欧美xxx| 午夜激情视频在线 | 亚洲欧美日韩综合网导航 | 国产一区亚洲二区三区 | 成年人网站免费观看 | 牛牛热在线视频 | 看黄色一级视频 | 天天插综合 | 一本大道香蕉高清视频视频 | 欧美一区二区三区久久久 | 国产午夜精品福利 | 亚洲国产日韩欧美在线as乱码 | 欧美午夜艳片欧美精品 | 国产高清av在线播放 | 91短视频在线观看手机 | 国产精品久久久天天影视香蕉 | 午夜乩伦 | 天天干天天骑 | 国产一区二区三区国产精品 |