2010-06-06 14 views
0

嘗試使用起訂量4.0.10531.7起訂量爲Silverlight不會引發事件

public delegate void DataReceived(ObservableCollection<TeamPlayerData> AllReadyPlayers, GetSquadDataCompletedEventArgs squadDetails); 

public interface ISquadModel : IModelBase 
{ 
    void RequestData(int matchId, int teamId); 
    void SaveData(); 

    event DataReceived DataReceivedEvent; 
} 

void MyTest() 
{ 
    Mock<ISquadModel> mockSquadModel = new Mock<ISquadModel>(); 
    mockSquadModel.Raise(model => model.DataReceivedEvent += null, EventArgs.Empty); 
} 

寫爲Silverlight 4.0單元測試而不是提高「DataReceivingEvent」收到以下錯誤:

'Castle.Proxies.ISquadModelProxy'類型的對象無法轉換爲'System.Collections.ObjectModel.ObservableCollection`1 [TeamPlayerData]'類型。

爲什麼試圖將模擬轉換爲第一個事件參數的類型被執行?

我該如何舉辦活動?

我也嘗試另一種方法:

mockSquadModel 
      .Setup(model => model.RequestData(TestMatchId, TestTeamId)) 
      .Raises(model => model.DataReceivedEvent += null, EventArgs.Empty) 
      ; 

如果萬一有人稱之爲「設置」方法......相反會產生同樣的錯誤這應該提高活動......

任何想法歡迎。

感謝

回答

2

發現一個問題,我需要通過不EventArgs.Empty,但我所有的參數:的ObservableCollection AllReadyPlayers,GetSquadDataCompletedEventArgs squadDetails:

 mockSquadModel 
      .Setup(model => model.RequestData(TestMatchId, TestTeamId)) 
      .Raises(model => model.DataReceivedEvent += null, players, squadDetails); 
      ; 

對不起,無趣的問題。

相關問題