2010-12-06 5 views
11

Moqのようなデータがキャッシングのデータとして返されるように設定されています。私はこれを行うと:それはを返しMoqキャッシュの戻り値

var service = new Mock<AlbumService>(); 
service.Setup(x => x.CreateOne()).Returns(new AlbumService().CreateOne()); 

同じオブジェクトでもAlbumService.CreateOneは()新しいアルバムのインスタンスを返すと思いました。

CreateOne()にアクセスするたびにMoqが返すアクションを呼び出すことはできますか?

答えて

13

これは役立つはずである:

var service = new Mock<AlbumService>(); 
service.Setup(x => x.CreateOne()).Returns(() => new AlbumService().CreateOne()); 

を詳述すると、戻り値メソッドは、戻り値の型または戻り値の型に評価されますデリゲートのオブジェクトを受け取ります。デリゲートは、モックされたメソッドが呼び出されるたびに呼び出されます。