C# 使用Rhinomock模拟视图

C# 使用Rhinomock模拟视图,c#,.net,unit-testing,rhino-mocks,C#,.net,Unit Testing,Rhino Mocks,我们正在使用MVP(监控控制器)用于ASP.NET WebForms和3.5 SP1 检查仅具有Rhinomock的set操作的视图属性值的首选方法是什么 以下是我们到目前为止的情况: var service = MockRepository.GenerateStub<IFooService>(); // stub some data for the method used in OnLoad in the presenter var view = MockRepository.G

我们正在使用MVP(监控控制器)用于ASP.NET WebForms和3.5 SP1

检查仅具有Rhinomock的set操作的视图属性值的首选方法是什么

以下是我们到目前为止的情况:

var service = MockRepository.GenerateStub<IFooService>();
// stub some data for the method used in OnLoad in the presenter

var view = MockRepository.GenerateMock<IFooView>();
var presenter = new FooPresenter(view, service);

view.Raise(v => v.Load += null, this, EventArgs.Empty);

Assert.IsTrue(view.Bars.Count == 10); // there is no get on Bars
var service=MockRepository.GenerateStub();
//在演示者中为OnLoad中使用的方法存根一些数据
var view=MockRepository.GenerateMock();
var presenter=新的FooPresenter(视图、服务);
view.Raise(v=>v.Load+=null,this,EventArgs.Empty);
Assert.IsTrue(view.bar.Count==10);//酒吧里没有酒吧
如果我们使用Expects或其他方式,任何输入都将非常好

谢谢

根据Darin Dimitrov的回复进行更新。

var Bar=new List(){new Bar(){BarId=1}};
var fooService=MockRepository.generateSub();
//这在演示者的OnLoad中调用
fooService.Stub(x=>x.getbar()).Return(bar);
var view=MockRepository.GenerateMock();
var presenter=新的FooPresenter(视图、fooService);
view.Raise(v=>v.Load+=null,this,EventArgs.Empty);
调用view.assertwas(x=>x.bar=bar);//这是不可能的

这不管用。我应该这样测试还是有更好的方法?

您可以断言
条上的
setter
属性已使用正确的参数调用。假设
属性是字符串数组:

// arrange
var view = MockRepository.GenerateMock<IFooView>();
var bars = new[] { "bars" };

// act
view.Bars = bars;

// assert
view.AssertWasCalled(
    x => { x.Bars = bars; }
);

谢谢你的回复,这很有意义。我已经根据您的帮助更新了我的问题。
// arrange
var view = MockRepository.GenerateMock<IFooView>();
var bars = new[] { "bars" };

// act
view.Bars = bars;

// assert
view.AssertWasCalled(
    x => { x.Bars = bars; }
);
view.AssertWasCalled(
    x => { x.Bars = new[] { "abc" }; }
);