春のプロジェクトをテストしたい。テストクラスで偽のクライアントをモックする必要がありますが、通常の実装はモック実装ではなく自動配線されます。これが私のコードのトップです。助けてください。
@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;
}
}
ここに私のテストクラスがあります:
@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();
}