【发布时间】:2010-06-06 19:04:05
【问题描述】:
尝试使用 Moq 4.0.10531.7 为 Silverlight 4.0 编写单元测试
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);
}
收到以下错误,而不是引发“DataReceivingEvent”:
“Castle.Proxies.ISquadModelProxy”类型的对象无法转换为“System.Collections.ObjectModel.ObservableCollection`1[TeamPlayerData]”类型。
为什么要尝试将模拟转换为执行第一个事件参数的类型?
如何发起活动?
我也尝试过另一种方法:
mockSquadModel
.Setup(model => model.RequestData(TestMatchId, TestTeamId))
.Raises(model => model.DataReceivedEvent += null, EventArgs.Empty)
;
如果有人调用“Setup”方法,这应该引发事件...相反会产生相同的错误...
欢迎提出任何想法。
谢谢
【问题讨论】:
标签: silverlight unit-testing silverlight-4.0 moq