代码之家  ›  专栏  ›  技术社区  ›  Joseph

调用方法时如何设置事件的期望值?

  •  2
  • Joseph  · 技术社区  · 15 年前

    因此,当我调用Timer.Start()一段时间后,我预期将发生经过的事件时,序列会发生变化。

    然而,对于我的测试,我想模拟这种行为,因为我不想等待一定时间事件发生(我希望它立即发生)。

    到目前为止,我已经做到了这一点:

    var _mock = MockRepository.GenerateMock<ITimer>();
    //this is what I'd like to do but it doesn't work
    Expect
        .Call(_mock.Start())
        .WhenCalled( () =>
            {
                if (_mock.Elapsed != null)
                    _mock.Elapsed();
            });
    

    我遇到的问题是编译器告诉我事件只能在+=或-=操作的上下文中使用。

    一定有一种方法可以用犀牛模型来做到这一点,有人知道怎么做吗?

    1 回复  |  直到 15 年前
        1
  •  2
  •   Joseph    15 年前

    here .

    我需要做的是以下几点:

    var _mock = MockRepository.GenerateMock<ITimer>();
    _mock.Raise(x => x.Elapsed += null, this, EventArgs.Empty);