Согласно документации fakeiteasy все, что я должен сделать, это:C# вызова событий с пользовательским типом делегата от поддельного объекта с fakeiteasy
public delegate void CustomEventHandler(object sender, CustomEventArgs e);
event CustomEventHandler CustomEvent;
fake.CustomEvent += Raise.With<CustomEventHandler>(fake, sampleCustomEventArgs);
Я попробовал это в моем коде следующим образом:
public delegate void RowStateHandler(object sender, RowStateHandlerArgs e);
public class RowStateHandlerArgs : EventArgs
{
public bool Selected { get; set; }
public string CampaignId { get; set; }
}
... интерфейс зрения:
public interface ICampaignChannelView
{
event RowStateHandler RowStateChanged;
}
сниппет в моем тестовом модуле:
ICampaignChannelView v = A.Fake<ICampaignChannelView>();
RowStateHandlerArgs args = new RowStateHandlerArgs() {CampaignId = "1", Selected = true};
v.RowStateChanged += Raise.With<RowStateHandler>(v, args);
Я получаю следующее сообщение об ошибке компиляции:
Error CS0029 Cannot implicitly convert type
FakeItEasy.Raise<Add_in.UI.Wizard.RowStateHandler> to
Add_in.UI.Wizard.RowStateHandler Add-inTests C:\..\WizardPresenterTests.cs
и
Error CS1503 Argument 2: cannot convert from 'Add_in.UI.Wizard.RowStateHandlerArgs' to 'Add_in.UI.Wizard.RowStateHandler' Add-inTests C:..\WizardPresenterTests.cs
Любая помощь очень ценится!
Да, мы обновили до 2.0.0-rc1, и теперь он работает. Сначала нам не было очевидно, что документы, которые мы читали, были для 2.0. Благодарю. – janhamburg