• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

9강 mockito에서 verify() 함수 에러

21.12.23 11:09 작성 조회수 210

0

9강 mockito를 활용한 테스트 강의 맨 마지막 부분에 실제 동작했는지를 확인하는 verify() 함수를 동작시키는데 에러가 발생해서 질문 남겨드립니다.

expect()함수까지는 잘 작동을 했는데요, verify()에서 

이렇게 똑같이 동작 시켰는데 에러가 발생하고 있습니다.

verify(client.get(Uri.parse('${PixabayApi.baseUrl}?key=${PixabayApi.key}&q=iphone&image_type=photo')));

에러는 No matching calls(actually, no calls at all.)이라고 나옵니다.

 

test('Pixabay 데이터를 잘 가져와야 한다', () async {
final api = PixabayApi();

final client = MockClient();

// mockito에서 제공하는 when()함수
when(client.get(Uri.parse('${PixabayApi.baseUrl}?key=${PixabayApi.key}&q=iphone&image_type=photo')))
.thenAnswer((_) async => http.Response(fakeJsonBody, 200));

final result = await api.fetch('iphone', client: client);

/// 실제 기대값
expect(result.first.id, 620817);

// 실제 동작했는지 검증하는 코드
verify(client.get(Uri.parse('${PixabayApi.baseUrl}?key=${PixabayApi.key}&q=iphone&image_type=photo')));
});

답변 1

답변을 작성해보세요.

1

혹시 PixabayApi 클래스의 fetch() 메서드 내용 확인 부탁드릴게요.

실제로 clinet.get( ) 부분이 동일해야 매칭이 되기 때문에 동일한 코드가 수행되는지 확인하시면 됩니다.

요청 URL이 완전히 동일해야 합니다.

test할때 URL과 fetch() 메서드 내의 URL 부분을 print 하여 비교해 보셔도 좋을 것 같습니다