0

私の春のプロジェクトをテストしたいです。私はテストクラスで偽のクライアントを模倣する必要がありますが、通常の実装は模擬実装の代わりにautowiredになります。ここに私のコードのトップです。 PLZヘルプ。 @ActiveProfiles("test")feignクライアントの模擬実装はオートワイヤではありません

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringApplicationConfiguration(classes = Application.class) 
@WebIntegrationTest({"server.port:0", "spring.profiles.active:test"}) 
public class RegistrationControllerTest { 

@Autowired 
WebApplicationContext wac; 

@Autowired 
TokenRepository tokenRepository; 

private static MockMvc mockMvc; 
private static ObjectMapper mapper = new ObjectMapper(); 
// token and sender id are required for communicating with google 
private static String senderId = "553921561995"; 
private static String token = 
"ecdNq6_jeTM:APA91bEgWsJeIS5cXFwWrj_83EKeLWRFf1" + 
     "-  lNQGXA1uWdzrfHLpd7fAY7ur6Pplc4TQuKmEDiSUhUBhDdQLwG2a_fxdgoGbDrKNLjPm2E7JOMJFjk65jtFGHrjJ39NkgABtfn6MDVUCQ"; 

@Before 
public void setup() { 
    this.mockMvc = MockMvcBuilders.webAppContextSetup(wac).apply(springSecurity()).build(); 
    tokenRepository.deleteAll(); 
} 

答えて

0

注釈RegistrationControllerTest

@Profile("test") 
@Primary 
@Component 
public class PushDevClientMock implements PushDevClient { 

//apiKey is needed for comminucating with GCM 
private static final String apiKey = "AIzaSyC7nH1yMgfGnEHbOHCgAeOrspMReaj0hCg"; 
@Override 
public ResponseEntity<PushInstanceResponse> getPushInstance(@PathVariable("instanceId") String instanceId) { 

    ResponseEntity<PushInstanceResponse> response; 
    if (instanceId == null) { 
     response = new ResponseEntity<PushInstanceResponse>(HttpStatus.BAD_REQUEST); 
    } 
    else { 
     PushInstanceResponse body = new PushInstanceResponse(); 
     body.setApiKey(apiKey); 
     response = new ResponseEntity<PushInstanceResponse>(body,HttpStatus.ACCEPTED); 
    } 

    return response; 
} 

}

はここに私のテストクラスです。

0
  1. は私が
  2. は次のように空のコンフィギュレーション・クラスを追加Application.java

  3. から @EnableFeignClientsを削除:

    @Configuration 
    @Profile("!test") 
    @EnableFeignClients(basePackages = "ir.pegahtech.backtory.push_api") //this is my project root 
    public class FeignClientConfiguration { 
    } 
    

今、すべてが正常に動作します

関連する問題