C# 使用Rhinomock模拟视图
我们正在使用MVP(监控控制器)用于ASP.NET WebForms和3.5 SP1 检查仅具有Rhinomock的set操作的视图属性值的首选方法是什么 以下是我们到目前为止的情况: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
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" }; }
);