java - Error creating bean with name 'exceptionTranslation' when using @RunWith(PowerMockRunner.class). Maven -


i having problem junit test using powermock. want mock final class object looking - created via builder:

public final class request implements serializable {     private static final long serialversionuid = 1l;      public static referencestep builder() {         return new builder();     } 

i need test method uses object (request) don't need test request itself. wrote test:

import junit.framework.assert; import org.junit.before; import org.junit.test; import org.junit.rule; import java.util.list; import java.util.arraylist; import java.util.collections; import org.mockito.mock; import org.junit.runner.runwith; import org.mockito.mockito; import org.powermock.api.mockito.powermockito; import org.powermock.core.classloader.annotations.preparefortest; import org.powermock.modules.junit4.powermockrunner;  @runwith(powermockrunner.class) // <-this leads error @preparefortest( { request.class }) public class test1 {     private static final string acc1 = "acc1";     private static final string acc2 = "acc2";     private aservice aservice;     private tservice tservice;      @before     public void setuptestconditionsbeforeeachtest() throws exception {         factory factory = (factory) class.forname(             "example.factoryimpl").newinstance();         aservice = bankfactory.getaccountservice();         tservice = bankfactory.gettransferservice();                 factory.setupinitialdata();          }      @test     public void dotransfer() throws exception {         aservice.createaccount(cash_account_1,100);         aservice.createaccount(cash_account_2,0);          transactionleg leg1 = new transactionleg(cash_account_1,moneyutils.tomoney("10.00", "eur"));         transactionleg leg2 = new transactionleg(cash_account_1,moneyutils.tomoney("-10.00", "eur"));         //used later request         list<transactionleg> legs = new arraylist<transactionleg>();         legs.add(leg1);         legs.add(leg2);         request tested = powermockito.mock(request.class);         powermockito.when(tested.getlegs()).thenreturn(legs);         powermockito.when(tested.gettransactionref()).thenreturn("first transaction");         powermockito.when(tested.gettransactiontype()).thenreturn("type1");          tservice.transferfunds(tested);     }     } } 

so method tested transferfunds. need request class pass parameter function. ok run test , error:

tests in error: dotransfer(...test1): error creating bean name 'exceptiontranslation'                             defined in class path resource [.../config/persistencejpaconfig.class]:            initialization of bean failed; nested exception     org.springframework.beans.factory.beancrea tionexception: error creating bean name 'entitymanagerfactorybean'     defined in class path resource [.../config/persistencejpaconfig.class]:     invocation of init method failed; nested exception     javax.persistence.persistenceexception: [persistenceunit: banktest_pu] unable build entitymanagerfactory 

using maven. pom looks this:

<dependency>     <groupid>org.mockito</groupid>     <artifactid>mockito-core</artifactid>     <version>1.9.5</version>     <scope>test</scope> </dependency> <dependency>     <groupid>junit</groupid>     <artifactid>junit</artifactid>     <version>4.9</version>     <scope>test</scope> </dependency> <dependency>     <groupid>org.powermock</groupid>     <artifactid>powermock-api-mockito</artifactid>     <version>1.5</version>     <scope>test</scope> </dependency> <dependency>     <groupid>org.powermock</groupid>     <artifactid>powermock-core</artifactid>     <version>1.5</version>     <scope>test</scope> </dependency> <dependency>     <groupid>org.powermock</groupid>     <artifactid>powermock-module-junit4</artifactid>     <version>1.5</version>     <scope>test</scope> </dependency> 

it seems problem in spring configuration. don't know dig in problem. alternatively, there way avoid using mock? class transfer made using builder() don't see how put test values in it(and cannot change part of code)

thanks in advance!


Comments