Как пройти таможенную проверку при весеннем контрактном тестировании? - PullRequest
0 голосов
/ 12 марта 2019

Я пытаюсь использовать весенний контракт, это файл моего контракта:

package contracts
import org.springframework.cloud.contract.spec.Contract

Contract.make {
  request {
       method POST()
       url '/v1/wallet'
       body("{\n" +
            "      \"externalRefType\":\"BIKER\",\n" +
            "      \"externalRefId\":\"9977633951\"\n" +
            "    }")
       headers {
            header 'Content-Type': 'application/json'
            header 'Authorization': 'eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzeXN0ZW0iLCJ0eXBlIjoic3lzdGVtIn0.ITL-gCOBAzgnMWcCHl4ztywLDKZxNgRbXzSfSWzT72wWoKqPr_PLLET3qFUd_cfRRZZMavjMxyz8_Uqin4j2-A'
    }
}
response {
    status 200
    body("{\n" +
            "    \"walletId\": 135\n" +
            "}")
}
}

Базовый класс:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = WalletServiceApplication.class)
public class BaseWallet {

   @Autowired
   private WalletController walletController;

@Before
public void setup() {
    RestAssuredMockMvc.standaloneSetup(walletController);
}}

Класс WalletServiceApplication:

@SpringBootApplication
@EnableAsync
@EnableScheduling
@EnableSnappboxSecurity
@EnableSnappboxClientSecurity
@EnableTransactionManagement
public class WalletServiceApplication {

        public static void main(String[] args) {
            SpringApplication.run(WalletServiceApplication.class, args);
          }}

и, наконец, WalletController:

@RestController
@RequestMapping(value = "/v1/wallet")
public class WalletController {

      @Secured(SYSTEM)
      @PostMapping
      public ResponseEntity<?> createWallet(@Valid @RequestBody WalletCreateRequest walletParams) {
           LOGGER.debug(walletParams.toString());
            return new ResponseEntity<>(new WalletCreatedResponse(135), OK);
}}

Но оно не прошло, и когда я его развернул, я получил следующую ошибку:

Выполнено тестов: 1, сбоев: 0, ошибок: 1, пропущено: 0, истекло время: 10.964 сек <<< ОТКАЗ! - в <br> org.springframework.cloud.contract.verifier.tests.ContractVerifierTest validate_createWalletContract (org.springframework.cloud.contract.verifier.tes ts.ContractVerifierTest) Прошедшее время: 0,347 сек <<< ОШИБКА! org.springframework.web.util.NestedServletException: запрос обработка не удалась; вложенное исключение org.springframework.security.authentication.AuthenticationCredentialsNotFoundException: Объект аутентификации не найден в SecurityContext </p>

Кто-нибудь может мне помочь в этом?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...