如何使用JPA从junit访问数据库

如何使用JPA从junit访问数据库,junit,Junit,我正在编写junit测试用例,如何使用jpa从junit访问数据库 我为编写了代码,但得到了以下异常 javax.persistence.PersistenceException: No Persistence provider for EntityManager named smsPU 我在src/test/resources/META-INF/persistent.xml文件中添加了provide,但是我得到了该错误的答案 我正在发布我的代码,请检查此代码中的错误位置 公共类SmsBean

我正在编写junit测试用例,如何使用jpa从junit访问数据库

我为编写了代码,但得到了以下异常

javax.persistence.PersistenceException: No Persistence provider for EntityManager named smsPU
我在src/test/resources/META-INF/persistent.xml文件中添加了provide,但是我得到了该错误的答案

我正在发布我的代码,请检查此代码中的错误位置

公共类SmsBeanTest{ 私有SmsBean SmsBean; 私人短信通知; 私人实体管理工厂实体; 私人实体管理者; @以前 公共void安装程序引发异常{ String CONFIG\u ATTR\u NAME=webappConfig; smsBean=新的smsBean; ServletContext ctx=mockServletContext.class; 配置配置=新配置; config.initPropertiessyniverse-sms.properties; whenctx.getAttributeCONFIG\u ATTR\u NAME.thenReturnconfig; smsBean.setServletContextctx; **//em=mockEntityManager.class; 属性属性=新属性; //确保使用本地事务的资源。 传动装置类型, PersistenceUnitTransactionType.RESOURCE\u LOCAL.name; //配置内部连接池 prop.putJDBC_驱动程序,com.mysql.jdbc.DRIVER; prop.putJDBC_URL,jdbc:mysql://localhost:3306/platform_service_db; prop.putJDBC_用户,root; prop.putJDBC_密码,root; prop.setPropertyTypersistenceUnitProperties.ECLIPSELINK\u PERSISTENCE\u XML, src/test/resources/META-INF/persistence.xml/lib/fdn-persistence-1.0.0-SNAPSHOT.jar; entity=Persistence.createEntityManagerFactorysMPU,prop; System.out.printlentity; em=entity.createEntityManagerprop; smsBean.setemm** //不做任何事。当我坚持通知; smsBean.init; 通知=新的短信; } @之后 公共void撕裂抛出异常{ smsBean=null; 通知=空; //实体.close; //em.close; } @试验 公共无效testSendSms{ SmsNotificationDTO sms=新SmsNotificationDTO; sms.setToAddress9985291980; sms.setMessageSending Message。。。; 试一试{ SyniverseDispatcher disp=mockSyniverseDispatcher.class; SyniverSerResponse resp=新的SyniverSerResponse; 分别为setresponsest1234; 字符串smsTo=notification.getDestination; 字符串smsg=notification.getMessage+new Date.getTime; 字符串urlStr=smsBean.getHostname+?user=+smsBean.getUser+&pass=+smsBean.getPass+&smsfrom=+smsBean.getShortCode+&smsto=+sms.getoaddress+&smsmsg=+sms.getMessage; SyniverseRequest请求=新SyniverseRequest; req.setRequestUrlStr; 当sp.dispatchreq.thenReturnresp; smsBean.sendsmsms; assertNotNullsms.getToAddress; assertEquals10,sms.getToAddress.length; assertNotNullsms.getMessage; assertEquals1234,分别为GetResponseST; }捕获SME{ faile.getMessage; } } }
请帮助我,

它找不到persistence.xml,因为您对它的定义不正确。src/test/resources/META-INF/persistence.xml/lib/fdn-persistence-1.0.0-SNAPSHOT.jar不应列出jar文件