C#でのMOCKの基本的な使い方
今MOCKを中心としてソースコードを記載しているのですが
忘れないように基本的な部分を書いてみました。
参考にならないかもしれませんが、備忘録として。
参考例:
//MoqをNUGETからDL後、下記を定義 using Moq; //定義 var mock = new Mock</*インターフェース*/>(); //定義したMockの関数を設定 //ImplementMethod //ごまかしたい関数 // IsAny Matches any value of the given TValue type mock.Setup( x=> x.ImplementMethod(It.IsAny</*型*/>())) .Returns/*非同期の場合Asyncを追加*/( /*戻したい型やobject*/);
実装全て
using Moq; namespace Verification { //実装部分がまだなInterfaceクラス public interface IUnfinishedClass { string ImplementMethod(string num); } //IUnfinishedClassの処理が必要なメソッド public class Call { public string CallImplement() { var mock = new Mock<IUnfinishedClass>(); //Mockを定義 //InterfaceのImplementMethodをラムダで定義。 //IsAnyを使用するといつでも呼び出せる mock.Setup(x => x.ImplementMethod(It.IsAny<string>())) .Returns("さようなら"); var mockMethod = mock.Object; //Setupしたobjectを定義,interfaceが返る return mockMethod.ImplementMethod("こんにちは"); //実装部分はないが呼び出される } } }
出力結果:さようなら