テストを実行しようとすると、次のエラーが表示されます。試してみましIgnoreArguments()
たが、うまくいかないようです。この例外は、試行したmock.Ordered()
場合にのみスローされ、mock.Record()
合格します。
System.InvalidOperationException : 前のメソッド 'IProductRepository.GetAllProducts();' 戻り値またはスローする例外が必要です。
[Test]
public void TestwithOrderedRecordsandPlayBack()
{
var mock = new MockRepository();
var productRepository = mock.StrictMock<IProductRepository>();
var product = new Grains
{
Name = "Wonder Bread",
Category = "Grains"
};
IList list = new ArrayList();
//Class under test
var service = new ProductService(productRepository);
using (mock.Ordered())
{
Expect.Call(productRepository
.GetAllProducts())
.IgnoreArguments()
.Return(new ArrayList());
Expect.Call(()=>productRepository.SaveProduct(product));
}
using (mock.Playback())
{
list = service.GetAllProducts();
service.SaveProduct(product);
}
}
サービスコール:
public virtual IList GetAllProducts()
{
IList list = _productRepository.GetAllProducts();
return list;
//throw new System.Exception("Not implemented");
}
public virtual IList GetAllProducts()
{
IList list = _productRepository.GetAllProducts();
return list;
//throw new System.Exception("Not implemented");
}