Попытка написать модульный тест для Silverlight 4.0 с использованием Moq 4.0.10531.7
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' ... Вместо этого генерируется та же ошибка ...
Любые мысли приветствуются.
Спасибо