如何强制一个void方法从存根对象返回void ?

本文关键字:void 方法 存根 对象 返回 一个 何强制 | 更新日期: 2023-09-27 18:10:52

如何在RhinoMocks中强制stub对象为其上的void方法返回void ?

举个例子:

public interface ICar 
{
    string Model {get;set;}
    void Horn();
}
ICar stubCar= MockRepository.GenerateStub<ICar>();
stubCar.Expect(c=>c.Horn()).Return( //now what so that 
                                   // it returns nothing as the meth. returns void ? 

如何强制一个void方法从存根对象返回void ?

方法不能返回值-它是一个void方法。CLR不会尝试返回值。你不需要测试这个

您只需要Expect呼叫

Return()方法对于void方法调用无效。你应该这样做:

ICar stubCar= MockRepository.GenerateStrictMock<ICar>();
stubCar.Expect(c=>c.Horn());
stubCar.DoSomethingThatIsSupposedToCallHorn();
stubCar.VerifyAllExpectations();

将告诉您是否调用了Horn()

这就是你测试单元测试时调用void方法的方式。您可以执行以下操作:

  1. 设定期望(Expect())
  2. 调用应该调用期望的方法
  3. 验证是否调用了预期的方法。