«mocking» 태그된 질문

모의 및 속임수는 실제로 다른 구성 요소 나 응용 프로그램의 종속성을 사용하지 않고 단위 테스트가 테스트 가능한 코드 단위에 대해서만 실행되도록 코드 또는 구성 요소를 분리하는 방법입니다. 모의는 모의가 검사 결과를 주장하기 위해 검사 될 수 있다는 점에서 위조와 다릅니다.

11
(왜) 단위 테스트가 종속성을 테스트하지 않는 것이 중요합니까?
나는 자동화 된 테스트의 가치를 이해하고 문제가 잘 구체화되어있는 곳이면 어디에서나 좋은 테스트 사례를 만들 수있을 때 사용합니다. 그러나 여기 및 StackOverflow의 일부 사람들 은 종속 장치가 아닌 단위 테스트 만 강조 합니다. 나는 이점을 보지 못했다. 테스트 종속성을 피하기 위해 조롱 / 스터 빙하면 테스트가 복잡해집니다. 조롱을 지원하기 위해 …

11
모의 객체를 사용할 때 단위 테스트와 관련된 종속성 문제를 어떻게 감지합니까?
클래스 X가 있고 동작 X1을 확인하는 몇 가지 단위 테스트를 작성합니다. X를 종속성으로 사용하는 클래스 A도 있습니다. A에 대한 단위 테스트를 작성할 때 X를 조롱합니다. 즉, 단위 테스트 A 동안 X의 모의 동작을 X1로 설정 (가정)합니다. 시간이 지남에 따라 사람들이 시스템을 사용하고 변화가 필요하며 X가 진화합니다. X를 수정하여 X2 동작을 …

11
정적은 단위 테스트를 위해 보편적으로“악”입니까? 그렇다면 Resharper가 권장하는 이유는 무엇입니까? [닫은]
C # .NET에서 정적 인 단위 테스트 (모의 / 스텁) 종속성을 3 가지 방법으로 만 발견했습니다. 두더지 TypeMock 저스트 모크 이 중 두 가지가 무료가 아니며 하나가 릴리스 1.0에 도달하지 않았으므로 정적 항목을 조롱하는 것은 쉽지 않습니다. 정적 메소드와 "악한"(단위 테스트 의미)을합니까? 그렇다면 왜 resharper가 정적, 정적 일 수있는 것을 …

8
광범위하게 조롱하지 않고 어떻게 단위 테스트를 작성해야합니까?
내가 이해했듯이 단위 테스트의 요점 은 코드 단위를 격리 하여 테스트하는 것 입니다. 이는 다음을 의미합니다. 코드 베이스의 다른 곳에서 관련되지 않은 코드 변경으로 인해 깨지지 않아야합니다 . 통합 테스트 (힙에서 깨질 수 있음)와 반대로 테스트 된 장치의 버그로 인해 하나의 단위 테스트 만 중단해야합니다. 이 모든 것은 테스트 된 …

3
이것이 Mockito의 재설정 방법을 적절하게 사용합니까?
테스트 클래스에는 일반적으로 사용되는 Bar객체 를 구성하는 개인 메서드가 있습니다. Bar생성자는 호출 someMethod()내 조롱 개체의 방법 : private @Mock Foo mockedObject; // My mocked object ... private Bar getBar() { Bar result = new Bar(mockedObject); // this calls mockedObject.someMethod() } 내 테스트 방법 중 일부에서 someMethod특정 테스트에 의해 호출 되기를 …
68 java  mocking 

6
객체를 조롱하기 어려운 시스템을 어떻게 테스트합니까?
다음 시스템으로 작업하고 있습니다. Network Data Feed -> Third Party Nio Library -> My Objects via adapter pattern 우리는 최근에 내가 사용하고있는 라이브러리의 버전을 업데이트 한 문제가 있었는데, 그중에서도 타임 스탬프 (제 3 자 라이브러리가로 반환 long)가 에포크 후 밀리 초에서 에포크 후 나노 초로 변경되었습니다. 문제 : 타사 라이브러리 …

2
통합 테스트는 모의를 사용합니까?
저는 현재 학기 프로젝트를위한 단위 테스트 및 통합 테스트와 같은 여러 유형의 테스트를 수행해야하는 소프트웨어 테스트 강의 중입니다. 통합 테스트를 위해 교수는 통합 테스트에 모의 및 모의 라이브러리 (EasyMock 및 Mockito와 같은)를 사용한다고 말했습니다. 그래도 상당히 혼란스러워지고 있습니다. 통합 테스트는 클래스, 모듈, 서비스 등을 테스트하는 것입니다. 여러 클래스 및 서비스를 …

3
테스트중인 수업의 일부를 가짜로해도 괜찮습니까?
내가 수업을 가지고 있다고 가정 해 봅시다 (생각 된 예와 나쁜 디자인을 용서하십시오). class MyProfit { public decimal GetNewYorkRevenue(); public decimal GetNewYorkExpenses(); public decimal GetNewYorkProfit(); public decimal GetMiamiRevenue(); public decimal GetMiamiExpenses(); public decimal GetMiamiProfit(); public bool BothCitiesProfitable(); } (GetxxxRevenue () 및 GetxxxExpenses () 메소드에는 종속 된 종속성이 있음을 참고하십시오) 이제 …

3
과도한 조롱 필요성으로 인한 취성 단위 테스트
팀에서 구현하고있는 단위 테스트와 관련하여 점점 성가신 문제로 어려움을 겪고 있습니다. 우리는 잘 설계되지 않은 레거시 코드에 단위 테스트를 추가하려고 시도하고 실제로 테스트를 추가하는 데 어려움이 없었지만 테스트가 어떻게 진행되는지에 어려움을 겪고 있습니다. 문제의 예로, 실행의 일부로 5 개의 다른 메서드를 호출하는 메서드가 있다고 가정 해 봅시다. 이 방법에 대한 …

6
TDD 관점에서 볼 때 모의 대신 라이브 엔드 포인트를 테스트하면 나쁜 사람입니까?
나는 종교적으로 TDD를 따릅니다. 내 프로젝트는 일반적으로 의미있는 테스트 사례와 함께 85 % 이상의 테스트 범위를 갖습니다. 저는 HBase 와 많은 작업을 수행 하고 있으며 주요 클라이언트 인터페이스 인 HTable은 조롱하기가 매우 어렵습니다. 라이브 엔드 포인트를 사용하는 테스트를 작성하는 것보다 단위 테스트를 작성하는 데 3-4 배 더 걸립니다. 철학적으로 모의를 …

3
Mocking은 생산 코드에서 처리를 소개합니다
IReader 인터페이스, IReader 인터페이스 ReaderImplementation의 구현 및 리더에서 데이터를 소비하고 처리하는 클래스 ReaderConsumer를 가정합니다. public interface IReader { object Read() } 이행 public class ReaderImplementation { ... public object Read() { ... } } 소비자: public class ReaderConsumer() { public string location // constructor public ReaderConsumer() { ... } // …

3
Mocking Framework를 선택하는 주요 요인은 무엇입니까?
단위 테스트에서 객체를 시작하려고합니다. 훌륭한 조롱 프레임 워크가 많이있는 것 같습니다. 다른 프레임 워크에 다른 대상 고객이 있습니까? 상황에 맞는 프레임 워크를 선택할 때 고려해야 할 요소는 무엇입니까?
15 mocking 


7
개인 메소드를 단위 테스트 할 필요가없는 방법
나는 당신이 개인 메소드를 테스트하지 않아야한다는 것을 알고 있습니다. 필요한 것처럼 보이면 클래스가 나올 수 있습니다. 그러나 공용 인터페이스를 테스트 할 수 있도록 gazillion 클래스를 원하지 않고 공개 클래스를 테스트하면 많은 클래스에서 많은 의존성을 조롱해야하며 단위 테스트는 다음과 같습니다. 엄청나고 따르기가 어렵다. 공개 메소드를 테스트 할 때 개인 메소드를 조롱하고 …

1
API 클라이언트 및 랩퍼의 단위 테스트
필자는 개발중인 API 클라이언트 라이브러리를 단위 테스트하는 가장 좋은 방법을 찾으려고 노력했습니다. 라이브러리에는 Client기본적으로 API와의 1 : 1 매핑이있는 Wrapper클래스 와 의 맨 위에보다 사용자에게 친숙한 인터페이스를 제공 하는 추가 클래스가 Client있습니다. Wrapper --> Client --> External API 내가 먼저 모두에 대해 테스트의 무리를 작성 Client하고 Wrapper효과적으로 단지 그들이 앞으로가에서 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.