Tag: 存根

为什么我不能更改Rhino Mocks存根对象的返回值?

如果这是一个愚蠢的问题,请原谅我,但我在嘲笑方面相当新,并且我正试图解决它。 我有一些unit testing(使用内置的Visual Studio 2010 Professional测试function),它使用方法所需的存根。 我创建了一个存根,并设置了几个属性和方法的默认返回值,一切运行良好。 我有一个静态类来设置存根,这在TestInitialize方法中用于设置存根… public static AppointmentReminderProviderInterface GetMockProvider() { AppointmentReminderProviderInterface provider = MockRepository.GenerateStub(); provider.Stub(p => p.ContactName).Return(MockProviderContactName); provider.Stub(p => p.ContactEmail).Return(MockProviderContactEmail); return provider; } 请注意, MockProviderContactName和MockProviderContactEmail是本地字符串属性,包含提供程序的默认数据。 该单元检查以查看是否按照默认数据进行的操作都可以正常通过。 但是,我现在想测试当其中一个属性包含duff数据时会发生什么。 我以为我可以在存根上设置它,但它不起作用。 测试方法包含以下几行…… _provider.Stub(p => p.ContactEmail).Return(“invalid”); Debug.WriteLine(“Provider email: “); Debug.WriteLine()告诉我,尽管我已将ContactEmail属性设置为返回“invalid”,但它仍然返回默认的电子邮件地址。 这导致我的测试失败,因为我期望它抛出exception,但事实并非如此。 任何人都知道为什么我不能改变这个属性的返回值? 谢谢你的帮助。

使用Moq存根接口方法

可能重复: 如何模拟使用MOQ返回int的方法 这是我的界面: public interface ICalenderService { DateTime Adjust(DateTime dateToAdjust, BusinessDayConvention convention, List holidayCities); } 我做了一些研究,似乎你可以很容易地模拟这个,但我想用Moq将其存根,这样我就可以将存根传递给我的其他类构造器并让存根返回我想要的任何DateTime用于其Adjust方法。 最简单的方法是什么? 编辑:我知道我可以在我的项目中创建自己的存根,但我想编写更少的代码,我认为Moq可以让我这样做,我只是不知道语法是什么样的。