문제

외부 웹 서비스에 메시지를 보내는 애플리케이션이 있습니다.나는 다음을 사용하여 이 애플리케이션을 구축하고 배포합니다. MSBuild 그리고 Cruisecontrol.NET.CCNET은 앱을 빌드하고 배포하면서 다음을 사용하여 일련의 테스트도 실행합니다. NUnit.이제 웹 서비스 통신도 테스트하고 싶습니다.

내 생각은 빌드 프로세스의 일부로 웹 서비스를 생성하고(외부 웹 서비스 WSDL을 기반으로) 빌드 서버 로컬 웹 서버에 배포해야 한다는 것입니다.웹 서비스가 해야 할 일은 메시지를 수신하고 이를 파일 시스템에 배치하여 예를 들어 일반 NUnit을 사용하여 확인할 수 있도록 하는 것입니다.또한 새로운 개발자는 빌드 스크립트만 실행하고 실행하면 되므로 개발이 더 쉬워집니다(타사 서비스에 대한 연결을 설정하는 데 시간을 소비할 필요가 없음).

거기 아무도 없나요 거기에 기존 유틸리티 WSDL 기반의 웹 서비스를 쉽게 모의할 수 있습니까?누구나 MSBuild를 사용하여 비슷한 작업을 수행했나요?

거기 있어요 이 시나리오를 테스트하는 다른 방법은 무엇입니까?

도움이 되었습니까?

해결책

방금 알아보기 시작했어요 http://www.soapui.org/ 그리고 웹 서비스를 테스트하는데 잘 작동할 것 같습니다.

또한 웹 서비스에 추상화 계층을 추가하는 경우 각 서비스 호출이 웹 범위 외부에서 테스트 가능한 메서드를 직접 호출하게 됩니까?방금 작업 중인 더 큰 프로젝트에서 이 작업을 수행했는데 테스트 가능성이 잘 작동하고 있습니다.

다른 팁

일반적으로 이와 같은 것을 테스트하는 아주 좋은 방법은 다음을 사용하는 것입니다. 모의 객체.

직장에서 우리는 제품을 사용합니다. 유형Mock 웹 서비스 통신 및 기타 외부 종속성과 같은 항목을 테스트합니다.비용이 많이 들기 때문에 귀하의 요구에 적합하지 않을 수도 있지만 환상적인 제품이라고 생각합니다.개인적인 경험을 통해 NUnit 및 CCNet과 매우 잘 통합된다는 것을 알 수 있습니다.

기본적으로 "이 방법/속성이 호출되면이 값을 대신 반환하기를 원합니다."라고 말하는 정말 간단한 구문이 있습니다. 네트워크 실패, 파일이 존재하지 않는 것, 물론 웹 서비스와 같은 것을 테스트하는 데 좋습니다.

보세요 NMock2.오픈 소스 모의 제품이며 풍부하고 심층적인 상호 작용을 지원하는 인터페이스에 대한 "가상" 구현을 만들 수 있습니다.

예를 들어, WS 인터페이스가 호출되는 경우 IService 그리고 Data GetData() 메서드를 한 번 호출하고 새 메서드를 반환하는 모의 객체를 만들 수 있습니다. Data 물체:

var testService = mockery.NewMock<IService>();
Expect
    .Once
    .On(testService)
    .Method("GetService")
    .WithNoArguments()
    .Will(
        Return.Value(new Data());

테스트가 끝나면 전화하세요. mockery.VerifyAllExpectationsHaveBeenMet() 다음을 보장하기 위해 GetData 메소드가 실제로 호출되었습니다.

추신.:"NMock2" 프로젝트를 sourceforge에서 "nmock2"라고도 불리는 "NMock RC2"와 혼동하지 마십시오.NMock2-the-project가 NMock을 대체한 것 같습니다.

이것도 뭔가 있을 수 있어요 - 모킹버드.유용해 보이네요.

우리가 사용하는 직장에서는 형모의 그리고 n단위 단위 테스트를 위해.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top