C# Rhinomock期望不作为';预期';

C# Rhinomock期望不作为';预期';,c#,unit-testing,rhino-mocks,C#,Unit Testing,Rhino Mocks,我有以下测试代码 //setup the mock SomeResource mock = MockRepository.GenerateMock<SomeResource>(); mock.Stub(m => m.GetNumOfResources()).Return(1); mock.Stub(m => m.SomeProp).Return(SomeEnum.YO); mock.Expect(m => m.SomeProp).Repeat.Once(); moc

我有以下测试代码

//setup the mock
SomeResource mock = MockRepository.GenerateMock<SomeResource>();
mock.Stub(m => m.GetNumOfResources()).Return(1);
mock.Stub(m => m.SomeProp).Return(SomeEnum.YO);
mock.Expect(m => m.SomeProp).Repeat.Once();
mock.Replay();

//execute
SomeClass sc = new SomeClass();
sc.SetSomeResource(mock);
sc.MethodToTest();

//verify
mock.VerifyAllExpectations();

mock和stub之间的一些API混淆,因为它们与rhinomocksapi和基于交互的测试有关

//Arrange
SomeObj mock = MockRepository.GenerateMock<SomeObj>();
mock.Expect(_ => _.GetNumOfThings()).Return(1);
mock.Expect(_ => _.SetSomething(Arg<string>.Any())).Throw(new Exception());
mock.Expect(_ => _.SomeProp).Return(SomeEnum.YO).Repeat.Once();
SomeClass sc = new SomeClass();
sc.SetSomeResource(mock);

//Act
sc.MethodToTest();

//Assert
mock.VerifyAllExpectations();
//排列
SomeObj mock=MockRepository.GenerateMock();
mock.Expect(=>u.GetNumOfThings()).Return(1);
mock.Expect(=>u.SetSomething(Arg.Any())).Throw(newexception());
Expect(=>574;.SomeProp).Return(SomeEnum.YO).Repeat.Once();
SomeClass sc=新的SomeClass();
sc.SetSomeResource(模拟);
//表演
sc.MethodToTest();
//断言
mock.verifyallexpections();

Reference

显示测试中的代码,包括测试访问的所有相关成员,而我可以假设
SetSomeResource
也应该包括哪些内容。此外,根据当前代码,在调用
SetSomething
时,需要使模拟抛出出错。
//Arrange
SomeObj mock = MockRepository.GenerateMock<SomeObj>();
mock.Expect(_ => _.GetNumOfThings()).Return(1);
mock.Expect(_ => _.SetSomething(Arg<string>.Any())).Throw(new Exception());
mock.Expect(_ => _.SomeProp).Return(SomeEnum.YO).Repeat.Once();
SomeClass sc = new SomeClass();
sc.SetSomeResource(mock);

//Act
sc.MethodToTest();

//Assert
mock.VerifyAllExpectations();