저는 1 년 전에 시작된 프로젝트에서 새로 왔습니다.WPF - PRISM (CAL) - 자동화 된 기능 테스트
이 프로젝트는 C#, WPF, PRISM (CAL), Entity Framework, LINQ 등을 사용합니다. 응용 프로그램은 MVVM 패턴을 사용하여 수행됩니다.
일부 단위 테스트가 있지만 모든 구성 요소를 함께 사용할 때 대부분의 버그가 발견 되었기 때문에 기능 테스트를 요청 받았습니다.
MSTEST 프로젝트를 만들기 시작했습니다. 내 목표는 전체 애플리케이션 백엔드 (모델 및 뷰 모델)를 시작하고, UI 이벤트를 시뮬레이트하고, 또는 여러 뷰 모델 속성에 액세스하는 모델 수정을 확인하는 것이 었습니다.
첫 번째 게스트는 Entity 컨텍스트 (모델)를 만들고, 모든 PRISM 모듈을 초기화하고, 뷰 모델에서 이벤트 게시를 시작하여 모델을 수정하고 동일 또는 다른보기 모델에서 결과를 다시 확인했습니다. (MSTEST 아래는 System.Windows.Application.Current
가 null 것으로 보인다 때문에) 간단한 응용 프로그램을 만듭니다
- 재정의 프리즘 Boostrapper 클래스
- : 내가했다. 방금
System.Windows.Application
에서 수업을 파생했습니다.
UnityContainer를 사용하여 모든 인터페이스 구현에 액세스 할 수 있습니다. 내가 지금 가지고있는 문제는 IEventAggregator
이 작동하지 않는다는 것입니다. 이벤트는 시작되지 않습니다. 프리즘 모듈 사이에서 이벤트를 발생시키고 싶기 때문에 이벤트 집계기를 모의하고 싶지는 않습니다 (저는 단위 테스트가 아닌 기능 테스트를하고 있습니다).
Dispatcher
및 DispatcherFrame
으로 게임을 진행하는 방법을 찾았지만 실패한 것으로 보이는 RegionManager
의 재고가 있습니다.
제 질문은 : 사용자 인터페이스를 반드시 표시하지 않고 기능/통합 테스트를 수행하는 더 좋은 방법이 있습니까?
내 응용 프로그램은 MVVM 및 PRISM을 사용하여 작성됩니다. MVVM은 ViewModel에서 로직이 모두 나타나고 View가 아니라는 것을 알려줌으로써 View를 표시하지 않고 자동화 된 기능 테스트를 쉽게 수행 할 수 있습니다 (ViewModel에서 작업을 수행하는 것만으로). PRISM을 사용하면 (나에 따르면) 불가능하게 만들 수 없습니다! – Nicolas