0
私はUnitTestを自分のViewModels用に書いています。私は次の操作を行いUnitTestパブリッシュイベントが動作しない
私のunittestの中に今private IEventAggregator _eventAggregator;
public MyViewModel(IEventAggregator eventAggregator ) {
_eventAggregator = eventAggregator;
_eventAggregator.GetEvent<ResponseParameters>().Subscribe(OnResponseParametersSave);
}
private void OnResponseParametersSave (ResponseParameters item){
var x = item
}
:
private IUnityContainer _unityContainer;
private IEventAggregator _eventAggregator;
[TestInitialize]
public async void TestInitialize() {
_unityContainer = new UnityContainer();
_unityContainer.RegisterType<IEventAggregator, EventAggregator>();
_eventAggregator = _unityContainer.Resolve<EventAggregator>();
_vm = _unityContainer.Resolve<MyViewModel>();
await _vm.Load();
}
[TestMethod]
public void AddingItemDataObjectsShouldThenBeLoaded() {
var _item = new MyObject{
Description = "ArticleOne",
Id = 2,
Comment = "Testing event and adding of item to list",
};
_eventAggregator.Publish(new ResponseParameters () { item = _item });
Assert.IsNotNull(_vm.Data, "The Data object is still null after adding an item");
}
私は(方法OnResponseParametersSaveにブレークポイントを入れている)が、私はデバッグするとき、それがトリガされていない私は私のViewModelで テスト。
は、誰もが、私はあなたがPRISM(IEventAggregatorとユニティ)を使用している推測UnitTestを
EventAggregator.Publishはイベントをパブリッシュして、ただちにファイヤー・アンド・ファットで返します。単体テストでIEventAggregatorインターフェイスの独自の実装を提供する必要があります:http://stackoverflow.com/questions/3694195/moq-event-aggregator-is-it-possible – mm8