গ্যামলারের উত্তর আমার পক্ষে কাজ করেছে, কিন্তু আমি ভেবেছিলাম জন জন কার্পেন্টারের মন্তব্যটি প্রসারিত করব কারণ আমি একাধিক পরামিতি জড়িত একটি সমাধান খুঁজছিলাম। আমি অন্যান্য ভাবেন যারা এই পৃষ্ঠায় হোঁচট খায় একইরকম পরিস্থিতিতে থাকতে পারে। আমি মক ডকুমেন্টেশনে এই তথ্যটি পেয়েছি ।
আমি গ্যামলোর উদাহরণটি ব্যবহার করব, তবে আসানস্যান্ডহ্যান্ডল পদ্ধতিটি দুটি আর্গুমেন্ট গ্রহণ করে: একটি string
এবং একটি SomeResponse
অবজেক্ট।
var mock = new Mock<Handler>();
string stringResult = string.Empty;
SomeResponse someResponse = null;
mock.Setup(h => h.AsyncHandle(It.IsAny<string>(), It.IsAny<SomeResponse>()))
.Callback<string, SomeResponse>((s, r) =>
{
stringResult = s;
someResponse = r;
});
// do your test
new Foo(mock.Object).Bar(22);
Assert.AreEqual("expected string", stringResult);
Assert.IsNotNull(someResponse);
মূলত আপনাকে It.IsAny<>()
যথাযথ প্রকারের সাথে আরও একটি যুক্ত করতে হবে, Callback
পদ্ধতিতে অন্য ধরণের যোগ করতে হবে এবং ল্যাম্বডা ভাবটি যথাযথ হিসাবে পরিবর্তন করতে হবে।