এমএসটিস্টেট ব্যবহার করে কীভাবে একটি পরীক্ষার অ্যাসিঙ্ক কোড করে


92

আমি কিছু সুপার সহজ async কোড লিখছি। কেবল একটি ফাইল অফ-থ্রেড সংরক্ষণ করছে।

আমি মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও টিম সিস্টেম ২০০৮ সালে এমএসটিস্ট ইউনিট পরীক্ষার কাঠামো ব্যবহার করে এই কোডটি পরীক্ষা করতে চাই।

আমি এটা কিভাবে করবো?

পদ্ধতিটি ফিরে না আসা পর্যন্ত আমি পরীক্ষার পদ্ধতিটিকে সহজভাবে ব্লক করতে চাই। আমি এটি করার কিছু উপায় কল্পনা করতে পারি, তবে আমি এটিকে ঘিরে ফেলেছি this এর আশেপাশে কোনও সেরা অনুশীলন বা সহায়ক শ্রেণি নেই।

আমি সিলভারলাইটের জন্য অনেক কিছু দেখি , তবে জেনেরিক কিছুই না।


4
নকল? stackoverflow.com/questions/1174702/… (আমি মনে করি যে সরবরাহিত উত্তরগুলি কোন পরীক্ষার কাঠামোটি ব্যবহৃত হয় তার সাথে সরাসরি সম্পর্কিত নয়)
ফ্রেডরিক মের্ক

4
হ্যাঁ এটি - এবং উত্তরটি আমার মতামত একই হবে same
আন্দ্রেস জোল্টান

উত্তর:


167

ভিজ্যুয়াল স্টুডিও 2012 (পূর্বে "ভিজ্যুয়াল স্টুডিও 11" হিসাবে পরিচিত) অ্যাসিঙ্ক পরীক্ষার জন্য সমর্থন চালু করেছিল । দেখে মনে হচ্ছে:

[TestMethod]
public async Task FooTest()
{
   var result = await SomeAsyncOperation();
   Assert.IsTrue(someCondition);
}

হিসাবে মন্তব্য উল্লেখ করা হয়েছে, রিটার্ন টাইপ গুরুত্বপূর্ণ । আপনি পদ্ধতিটি ফেরত হিসাবে ঘোষণা করলে এটি কার্যকর হবে না ।Taskvoid


59
মনে রাখবেন যে রিটার্নের ধরণটি Taskবাধ্যতামূলক - voidকাজ করবে না (কমপক্ষে ভিএস ২০১৩ আপডেট 4 এ নয়)
ওহাদ স্নাইডার

4
(এটি কখনই কার্যকর হবে না, যেহেতু voidপুনর্বিবেচনায় অ্যাসিঙ্ক পদ্ধতিগুলি প্রত্যাশিত হতে পারে না)
রিচার্ড সুইলা

4
: @RichardSzalay: এটা কাজ করা যেতে পারে, এখানে কিভাবে NUnit এটা আছে দেখতে stackoverflow.com/questions/15031681/...
Wim Coenen

-3

সরাসরি System.IO পদ্ধতিগুলিকে কল করার পরিবর্তে, তার পরিবর্তে SystemWrapper লাইব্রেরি ব্যবহার করার চেষ্টা করুন । তারপরে আপনার পরীক্ষাগুলিতে আপনি নিজের ইচ্ছামতো কলগুলি উপহাস করতে পারেন, ত্রুটি শর্ত সহ আপনার পরীক্ষায় যা যা পছন্দ করেন তা ফিরিয়ে দিতে পারেন এবং নিশ্চিত করুন যে আপনার যুক্তি প্রত্যাশা অনুযায়ী কাজ করে।

আপনি যদি একটি উদাহরণ দেখতে চান তবে এই ব্লগ পোস্টটি কীভাবে রাইনোমক্সের সাথে ব্যবহার করা যেতে পারে তা দেখুন।


4
আমি
এটিকে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.