Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用Rhyno mock模拟同步服务行为_C#_Silverlight_Unit Testing_Silverlight 4.0_Rhino Mocks - Fatal编程技术网

C# 无法使用Rhyno mock模拟同步服务行为

C# 无法使用Rhyno mock模拟同步服务行为,c#,silverlight,unit-testing,silverlight-4.0,rhino-mocks,C#,Silverlight,Unit Testing,Silverlight 4.0,Rhino Mocks,我试图(用Rhyno Mock)模拟一个非同步服务的行为 下面是一个示例:我得到了一个名为void GetServerState()的方法的服务。由于此方法是异步的,因此它是无效的,但是当调用它时,它将调用代理并调用事件GetServerStateCompleted(对象,eventargs)。 在这一点上,我希望每个人都能跟上我;-) 现在,让我们看看mock(它实际上是一个存根,但没关系) 公共类MyStub { 受保护的MockRepository MockRepository{get;s

我试图(用Rhyno Mock)模拟一个非同步服务的行为

下面是一个示例:我得到了一个名为void GetServerState()的方法的服务。由于此方法是异步的,因此它是无效的,但是当调用它时,它将调用代理并调用事件GetServerStateCompleted(对象,eventargs)。 在这一点上,我希望每个人都能跟上我;-)

现在,让我们看看mock(它实际上是一个存根,但没关系)

公共类MyStub
{
受保护的MockRepository MockRepository{get;set;}
public IMyService MyService{get;set;}//使用GetServerState()方法创建服务
受保护的委托void DelegateVoid();//便于写入
公共MyStub()
{
MockRepository=newmockrepository();
MyService=MockRepository.Stub();
//现在,让我们来模拟一下这种行为
Stub(sm=>sm.GetServerState())
.IgnoreArguments()
.Do((DelegateVoid)GetServerStateCompletedBehavior);
}
//当有人在存根上调用GetServerState时应启动的方法
受保护的无效GetServerStateCompletedBehavior()
{
Raise(x=>x.GetServerStateCompleted+=null,MyService,new EventArgs());
}
}
//下面是我想如何使用它
[测试方法]
无效测试()
{
尝试
{
IMyService Stub=newmystub().MyService;
存根+=新的EventHandler(EventMethod);
Stub.GetServerState();
Assert.Fail();
}
捕获(MyException){}
}
void EventMethod(对象发送方,EventArgs e)
{
抛出新的MyException();
}
因为对我来说一切似乎都是对的,所以这个代码根本不起作用。有人对为什么它不应该起作用有一个开始的解释吗


thx,

我发现了问题所在:

public MyStub()
 {
   MockRepository = new MockRepository ();
   //MyService = MockRepository.Stub<IMyService >(); //Stupid Stupid Stupid !!!
   MyService = MockRepository.GenerateStub<IMyService >();

   //And now, let's try to mock the behaviour
   MyService.Stub(sm => sm.GetServerState())
                .IgnoreArguments()
                .Do((DelegateVoid)GetServerStateCompletedBehaviour);
 }
public MyStub()
{
MockRepository=newmockrepository();
//MyService=MockRepository.Stub();//愚蠢!!!
MyService=MockRepository.GenerateStub();
//现在,让我们来模拟一下这种行为
Stub(sm=>sm.GetServerState())
.IgnoreArguments()
.Do((DelegateVoid)GetServerStateCompletedBehavior);
}
public MyStub()
 {
   MockRepository = new MockRepository ();
   //MyService = MockRepository.Stub<IMyService >(); //Stupid Stupid Stupid !!!
   MyService = MockRepository.GenerateStub<IMyService >();

   //And now, let's try to mock the behaviour
   MyService.Stub(sm => sm.GetServerState())
                .IgnoreArguments()
                .Do((DelegateVoid)GetServerStateCompletedBehaviour);
 }