Mock Rhino 测试中的传递值

Passing value in Mock Rhino test

我有以下代码:

if (ActiveApplication.GetField("previous_date").Value != ActiveApplication.GetField("new_date").Value)
{
        //do something.. 
}

我想对此进行单元测试。作为 Rhino 测试的新手,我试图弄清楚如何传递价值,以便我进入循环。这是我尝试过的:

var previous_date = MockRepository.GenerateMock<IField>();
stubApplication.Stub(x => x.GetField("previous_date")).Return(previous_date);
previous_date.Stub(x => x.GetInternalValue()).Return("20160525");

var new_date = MockRepository.GenerateMock<IField>();
stubApplication.Stub(x => x.GetField("new_date")).Return(new_date);
new_date.Stub(x => x.GetInternalValue()).Return("20160525");

有人可以告诉我我做错了什么吗?

这个returnsprevious_date,一个IField类型的接口:

stubApplication.Stub(x => x.GetField("previous_date")).Return(previous_date)

因为它不是基础 class 实现,所以您的代码在界面上使用 Value 属性 也必须在模拟中设置,而不是使用 GetInternalValue()。与 new_stub.

相同

编辑: 您基本上需要执行以下操作(请注意,我不确定这是否是正确的语法,因为我没有使用过该框架,但我试图捕捉本质):

previous_date.Stub(x => x.Value).Return("20160525");