2013-09-06 4 views
0

나는 클라이언트와 서버가있는 프로젝트에서 일하고있다. 그리고 저는 클라이언트와 서버 간의 많은 커뮤니케이션을 검증하는 "미리 체크인 (pre-check-in)"도구를 쓰고 있습니다.단위 테스트 실제 서버 데이터 교환?

이미 양면에 단위 테스트가 있습니다. 이제는 둘 사이의 통합을 테스트하고 싶습니다. 서버에 대한 실제 클라이언트 연결과 비슷하며 그 반대의 경우도 마찬가지입니다.

정말 이것에 대한 단위 테스트를하고 싶지만 MMVMCross 프레임 워크와 뷰 모델 클래스를 초기화하는 방법을 알아내는 데 어려움을 겪고 있습니다.

테스트를 실행하는 "콘솔 앱"에 대한 도움을 요청한 다른 스레드에서 프레임 워크를 초기화하는 것이 정말 어렵고 Visual Studio 및 reSharper를 사용하여 단위 테스트의 멋짐을 느슨하게 만듭니다.

내보기 모델은 SQLite와 HttpClient를 async/await와 함께 사용합니다. 예를 들어

:이 인터페이스를 필요 뷰 모델을 인스턴스화하는 방법을 찾을 수 없습니다 :

IChatService, IMvxMessenger, IDataService, ISettingsService

프레임 워크의 일부 내 자신의 코드에서 일부. MVVM 기본 서브 시스템 (ioc?)이 아직 설정되지 않았으므로 TestFixtureSetUp에 내 시스템을 등록하려고했지만이 과정이 실패합니다.

위의 서비스 중 일부는 예를 들어 IDataService과 같이 ISQLiteConnectionFactory, IMvxMessenger, ISettingsService이 필요합니다.

단위 테스트가 빠르지 만 제 생각에는이 모든 테스트를 새로운 체크 박스에 넣고 내 친구 인 서버 개발자가 실행하기 전에 실행해야 할 새로운 Category에 넣는 것이 좋습니다. - 인.

여기서 가장 좋은 방법은 무엇입니까? 힌트, 제안 사항, 조사/조사 할 것이 현재 시점에서 도움이 될 것입니다. 실제로이 문제에 집착하고 있습니다.

세르지오

예를 들어

답변

1

: 일반적으로

IChatService, IMvxMessenger, IDataService, ISettingsService

:이 인터페이스를 필요 뷰 모델을 인스턴스화하는 방법을 찾을 수 없습니다 이는 Mock 구현을 사용하여 수행 한 다음 해당 Mock으로 ViewModel 생성자를 직접 호출합니다.

나는 당신이 MvxIoCSupportingTest 헬퍼 클래스 사용할 수있는 프레임 워크의 IOC의 부분 초기화하기 위해서 MMVMCross 프레임 워크

를 초기화 할 수있는 방법을 알아내는 정말 힘든 시간을 보내고있어 - https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Test/Cirrious.MvvmCross.Test.Core/MvxIoCSupportingTest.cs

그런 다음 프레임 워크의 추가 부분이 필요한 경우 일반적으로 이러한 방법을 모방해야합니다.예를 들어, 탐색이 두 기사를 조롱하는 방법을 참조하십시오


도움이된다면, 시험의이 유형의 예 https://github.com/slodge/MvvmCross-Tutorials/blob/master/Sample%20-%20TwitterSearch/TwitterSearch.Test/TwitterViewModelTest.cs#L21


입니다

이 답변에 충분한 정보가없는 경우 작성하려는 테스트에 대한 예제 코드를 조금 더 제공하십시오.

관련 문제