Я пытаюсь написать модульное тестирование с использованием JustMock, которое игнорирует событие.Пытается провести тестирование устройства с помощью JustMock
Вот быстрый бит кода примера:
public class Sample
{
public delegate void OneParameterFunction(int someVar);
public event OneParameterFunction TheEvent;
public Sample()
{
TheEvent += CallMe;
}
public void CallMe(int someVar)
{
Debug.WriteLine("CallMe was fired with parameter: " + someVar);
}
public void FireEvent()
{
// do stuff, business logic here...
if (TheEvent != null)
TheEvent(3);
}
}
А вот тест я бы Любовь писать, но не может:
[TestClass]
class EventMocking
{
[TestMethod]
public void DoNothingOnEvent()
{
var s = new Sample();
Mock.Arrange(() => s.TheEvent(Arg.AnyInt))
.DoNothing();
Mock.Arrange(() => s.CallMe(Arg.AnyInt))
.OccursNever();
s.FireEvent();
Mock.Assert(() => s.CallMe(Arg.AnyInt));
}
}
Но я получаю следующее сообщение об ошибке компилятора :
Error 1 The event 'Sample.TheEvent' can only appear on the left hand side of += or -= (except when used from within the type 'Sample') C:\BizObjectTests\EventMocking.cs
Есть ли у кого-нибудь какие-либо предложения о том, как остановить распространение события? Я также не хочу Mock.Create<T>
по ряду причин, один из которых я бы хотел, нужно настроить намного больше тестовых данных/объектов.