2012-08-22 2 views
0

내가 API를 통해 서로 이야기 두 응용 프로그램, 말, A와 B를 가지고, 지금은 A의 오이 테스트를 쓰고 있어요, 나는 두 가지 옵션이 있습니다두 개의 응용 프로그램을 테스트하는 방법 통신

  1. 을 API가 B로 보내지고 B에서 응답을 스텁하는지 테스트합니다.

  2. A에서 B로 테스트 데이터를 설정하고 (A 테스트이므로) B에게 실제 요청을 보내고 VCR로 요청/응답을 기록합니다.

옵션 # 1을 선호하지만 제 동료는 시스템 (A와 B 포함)이 작동하는지 적어도 하나의 실제 요청이 필요하다고 말합니다.

나의 관심사입니다 :

  1. 어떻게 A의 테스트에서 B에 대한 테스트 데이터를 준비하기 위해?

  2. 이건의

모든 의견에 오류가 발생할 수 있습니다, 함께 B에 어떤 변화를 혼합 깨지기 쉬운입니까?

답변

0

대다수 테스트의 경우 요청/응답을 스텁 (stub)하여 오프라인 상태에서 테스트가 통과하는 방식으로 테스트를 통과합니다.

한 가지 테스트의 경우 스텁과 모의 테스트에서 외부 서비스가 제대로 작동하는지 간단한 테스트를 수행하십시오.

E.G. get 요청을하면 여전히 모의이 유효하다는 특성을 가진 JSON이 반환됩니다.

외부 서비스에 대한 "가동 시간"은 테스트 스위트에서 모니터링하지 않아야합니다. 그것은 당신이 그것을 기대하는대로 행동하는 것입니다.

가동 시간 문제에 대해서는 Nagios, Pingdom, Pagerduty 또는 무엇이 아닌지 sysadmin 쪽을 봐야합니다.

+0

두 번째 단락을 볼 수 있습니다. ean, 모의이 오래된 것인지 확인하기위한 테스트를하려고합니다. 제 경우에는 테스트가 B 응용 프로그램 (외부 서비스)으로 가야한다고 생각합니다. 테스트를 통해 약속 한 것을 반환하는지 확인해야합니다. , 답장을 보내 주셔서 감사합니다,하지만 나는 두 번째 단락에서 당신과 동의 할 수 없다 : D 조 – leomayleomay

0

당신은 오이 테스트를 작성하고, 그것이 통합 테스트를 의미합니다. 통합 테스트의 경우 아무 것도 모방하지 말고 응용 프로그램을 저장하는 마지막 안전 관리자입니다.

귀하의 요청이 정확하고 언제든지이 실제 요청을 반복 할 수 있는지 확인하기 위해 실제 요청을 보내시는 것이 좋습니다.

솔루션 (1)의 문제 : 구현

  1. 당신은 변화하는 API B를 이용하여 확인 할 수
  2. 당신은 확실히 그것은 복잡한 요청
  3. 을 조롱하기 어렵다
  4. 을 B로 올바른 매개 변수를 보낼 수 없습니다

그래서 B에 대한 샌드 박스 응용 프로그램을 만들고 sugguest하여 실제 요청을하십시오.

관련 문제