2009-06-02 3 views
4

널리 사용되는 테스트 및 조롱 프레임 워크에 대한 귀하의 의견을 알고 싶습니다. Java와 .NET 간의 호환성이 좋습니다. 즉, .NET 프로젝트에서 사용할 도구를 배우고 싶지만 여전히 Java 프로젝트에서 해당 지식을 적용 할 수 있어야합니다.Java 및 .NET 용 테스트 및 모의 프레임 워크

  • 나는 especifically 여기 SO에서 이러한 플랫폼에 프레임 워크를 조롱 테스트에 대한 많은 질문이/거기있는 거 알아,하지만 난 그 두 플랫폼에서의 유사성에 대한 그 프레임 워크를 비교 한 질문을 찾을 수 없습니다했습니다.

답변

5

워크의 N/J 시리즈 (NUnit/JUnit, NMock/JMock 등)을 통상적으로 서로 병렬 포트 또는 동일 개시 원리에 기반을 할 것이다. 그 (것)들은 확실히 당신이 그 (것)들 사이 적어도 당신의 지식의 약간을 옮기게 할 것이다.

+1

기록을 위해 JMock2는 NMock가 복제 된 JMock1과 상당히 다릅니다. 더 이상 메서드 이름에 문자열을 사용하지 않습니다. –

2

우리는 .NET 프로젝트에 RhinoMocks와 NUnit을 사용합니다. JUnit을 자바 대안

1

저는 일부 Java 프로젝트에서 EasyMock을 사용했으며 매우 좋아합니다. .net port이있는 것 같지만 아직 개인적으로 사용하지 않았습니다.

단위 테스트와 관련하여 나는 JUnit 4.x를 사용하는데, 이는 3.x에 비해 좋은 확장이 있습니다. 나는 NUnit이 비슷한 기능을 제공하지만 사용하지는 않았다고 생각합니다.

4

다음은 울타리의 Java 측에 대한 내 경험에서 본 것입니다.

단위 테스트는 자바 단위 테스트에 관해서는

을 프레임 워크, 거의 모든 사람의 JUnit을 사용하고 JUnit을 4.0 나는 지금 더 NUnit과 같은 것을 이해 주석을 사용하고 있습니다.

비웃음 프레임 워크

우리는 약 반 년 동안 우리의 프로젝트에 EasyMock을 사용하고 우리는 그냥 간단한 작업을 할 수있는 우리의 시간을 많이 먹는 것을 결정했다. 실제로, 우리는 EasyMock이 쉽지 않은 방법에 대해 많은 농담을했습니다.

조롱 프레임 워크에 관한 강연을 마친 후, 나는 Mockito과 함께 가기로 결심했다. EasyMock이 별도의 라이브러리가 필요했던 부분을 조심스럽게 조롱 할 수 있습니다. 또한 Mockito는 오류 메시징 기능이 훨씬 뛰어납니다. 잘못된 행동을하면 모히토의 계약 위반에 대한 자세한 오류가 발생합니다.

어쨌든 스핀을 주면 모히토가 확실한 승자라는 데 동의 할 것입니다.

+0

+1 for Mockito. EasyMock보다 훨씬 낫습니다. 적은 수의 구현으로 모의 실험을 할 수 있기 때문에 – guerda

+0

+1은 테스트와 조롱을 분리합니다! – azheglov

0

테스트를 위해 MbUnit 및 Rhino.Mocks를 사용합니다. 난 정말 좋아.

우리가 MbUnit에이 반사경이다 사용하는 이유 ..

은 아마도 그것은 또한 NUnit를 발견 할 수 있지만, 내가 먼저 MbUnit에 그것을 발견)

3

나는 당신이 조롱에 대한 Moq에서 살펴 제안했다. 그물. 이것은 개념적으로 자바 측의 모키토 (Mockito)와 매우 유사합니다.

2

NMock은 .NET 세계에서 최고의 모의 프레임 워크가 아닙니다. 문자열을 기반으로합니다

Expect.Once.On(mockView).GetProperty("FromAccount").Will(Return.Value("1234")); 

내가 강하게 somethingmore - - 날짜 Rhino.Mocks 같은 제안 : 모든

Expect.Call(mockView.FromAccount).Returns("1234"); 
2

첫째, 그것은을 조롱 테스트의 개념을 분리하는 것이 중요합니다 . 단위 테스트의 경우 (테스트 용), JUnit (Java 용) 및 NUnit (for .NET 용)이 가장 많이 사용됩니다. 조롱 (또는 격리) 프레임 워크를 둘러싼 상황은 더욱 복잡합니다.

조롱 프레임 워크은 두 개의 캠프로 나뉘어 있습니다.이 두 캠프는 "일반"및 "대안"이라고합니다.

종래의 프레임 워크는 주로 테스트 가능성 및 의존성 삽입을위한 설계에 의존합니다. 대체 프레임 워크는 Profiling API 또는 Java 5 SE 계측 기능 (java.lang.instrument 패키지)에 의존하여 런타임에 CIL 또는 바이트 코드를 수정하므로 모든 종속성을 조롱 할 수 있습니다. 같은 다른 네트워크의

예 (당신이 오픈 소스 프로젝트에서 사용하지 않는 Typemock은 무료로하지 않습니다.) (Java 용) 및 JMockit (.NET 용) Typemock Isolator있는 conventinal 조롱 프레임 워크에 관해서는

.NET의 경우 가장 인기있는 두 가지는 현재 RhinoMocksMoq입니다. 두 가지 모두 C# 3.0 기능, 특히 람다 구문에 크게 의존하여 모의 객체 동작 및 기대에 대한 간결한 사양을 허용합니다.

+0

좋은 답변입니다! 작은 수정 : 지난 10 월 JMockit 프로젝트가 Google 코드로 옮겨졌습니다. 현재 URL은 http://code.google.com/p/jmockit입니다. –

+0

Rogerio : 수정 해줘서 고마워! Java보다 .NET에 관한 최신 정보를 제공합니다. – azheglov

관련 문제