2016-10-09 5 views
-4

나는 Mockito를 처음 접했고 배우기 시작했습니다. 하지만 몇 가지 질문이 있습니다. 왜 우리는 모키토를 사용해야합니까? 내가 아는 한 모의 (더미 객체 생성) 및 실제 실행 코드를 작성하기 전에 테스트 사례를 작성하는 데 사용됩니다. 그러나 이미 구현 된 코드를 테스트하여 제대로 작동하는지 여부를 확인하려면 어떻게해야합니까? Mockito를 사용하여 테스트하는 방법은 무엇입니까?Mockito를 사용하는 이유?

예를 들어, 나는 CRUD 메소드가 있으며, Create 메소드를 사용하여 실제로 데이터를 데이터베이스에 삽입하여 Create가 제대로 작동하는지 테스트하고 싶습니다. 우리는 모키토를 사용하여 그것을 얻을 수 있습니까? 그렇지 않다면 Mockito를 사용하지 않고 다른 테스트 케이스를 작성해야합니까?

+7

테스트 중 클래스 (CUT)를 조롱하지 마십시오. 당신은 그것을 모의합니다 _ 의존성 _. CRUD 메소드를 테스트하고 있다면, 데이터베이스를 생성하고, 데이터를 채우고, 연결 풀을 만들고, 연결을 제공하는 등의 작업을 원하지 않습니다. 단지 'mock (Connection.class)'을 제공하고 'update()'메소드는 적절한 방식으로'Connection'에있는 행동을 호출합니다. 다시 말하자면, 절대로 CUT **을 조롱하지 마십시오. –

+0

그리고 궁금한 점이 있습니다 : Mokito에 관한 모든 설명서/지침서를 읽으셨습니까? 오히려 당신의 첫 번째 아이디어는 여기에 너무 넓은 질문을 던지기위한 것이 었습니다. – GhostCat

+0

[Mocking이란 무엇인가요?] (http://stackoverflow.com/questions/2665812/what-is-mocking) – kryger

답변

1

모의 (Mock)는 사용하는 각 클래스 나 서비스에 사용됩니다. 시험중인 클래스은 조롱 받아서는 안됩니다. 엔지니어링 팀 중 하나가 만든 원격 서비스에 연결하고 있으며 내부 기능에 익숙하지 않지만 반환되는 요청 및 응답을 알고 있다고 가정합니다. 이 경우 해당 객체의 모의 객체를 만들 수 있으며 여러 상황에서 반환되는 일련의 응답으로 객체를 정의 할 수 있습니다. 각 상황마다 고유 한 테스트가 있어야하며 각 응답마다 별도로 코드의 반응을 확인해야합니다 (작업중인 경우).

또 다른 좋은 예는 제한 검사를 만드는 것입니다. 일부 상황에서 발생할 수있는 예외를 생각해 볼 수 있습니다. Exception을 던지는 객체를 모의 할 수 있습니다 (Mock을 사용하는 경우 ~ 2-3 행의 테스트 코드). 작성한 코드가 해당 Exception에 반응하는 방식을 확인할 수 있습니다. 모의 (Mock)이 없으면 예외를 던지기가 너무 복잡하고 사용하기 쉽지 않을 수도 있습니다. 물론 모의 (Mock) 기능을 사용하면 검사 시간을 매우 짧게 할 수 있으므로 검사하는 주요 기능에 집중할 수 있습니다. 시장 진출이 중요한 경우에 그것은 축복입니다.