我刚开始使用Rhino mock为我的项目设置测试用例。 .Return(objToReturn:list) 究竟是做什么的?只有在我初始化并填充列表然后将其传递给模拟存根方法时,它才起作用。我认为我可以使用模拟存根方法来填充一个列表,然后返回那个填充好的列表。
....
private ProductRepository _productRepository;
private IProductRepository _productRepositoryStub;
[SetUp]
public void SetUp()
{
_productRepository = new ProductRepository();
//Testing using Rhino Mocks
//Generate stub
_productRepositoryStub = MockRepository.GenerateMock<IProductRepository>();
}
[Test]
public void Canquerydb()
{
IList list = _productRepository.GetAllProducts();
_productRepository.Stub(x=> x.GetAllProducts()).Return(list);
_productRepositoryStub.AssertWasCalled(x => x.GetAllProducts());
}
/// <summary>
/// Refaactor and use MockRhino here
/// </summary>
[Test]
public void can_insert_product()
{
IProduct product = new Grains("Cheese Bread", "Dairy grain", 0);
_productRepository.SaveProduct(product);
_productRepositoryStub.Stub(x=>x.SaveProduct(product));
_productRepositoryStub.AssertWasCalled(x => x.SaveProduct(product));
}
objToReturn:list
部分只是 C# 4+ 显式参数命名语法,并没有为 Rhino 做任何特殊处理。 - Jeff Mercado