এই জাতীয় স্থিতিযুক্ত যুক্তি যুক্ত করা ঠিক কি [..]
না , তা নয়। কেন? কারণ যদি আপনি কোনও কারণে দ্বিতীয় দাবী সরিয়ে থাকেন তবে পরীক্ষাটি এখনও সবুজ হয়ে যাবে এবং আপনি ভাবেন যে এটি এখনও কার্যকর হয় তবে সংগ্রহটি অঙ্কিত হবে না। আপনার যদি দুটি বা ততোধিক স্বতঃস্বীকৃতি থাকে তবে তারা যদি তাদের মধ্যে কোনও একটি অক্ষম করেও থাকেন তবে তারা তাদের কাজ চালিয়ে যাবে।
এই সংমিশ্রণটি বিবেচনা করুন:
Assert.IsTrue(actualKittens.All(x => x.IsCute());
CollectionAssert.AreEquivalent(expectedKittens, actualKittens.ToList());
এখন আপনি যদি দৃ the় অক্ষরের একটি অক্ষম বা অপসারণ করেন তবে অন্যটি তার কাজটি করবে। এছাড়াও আপনি যদি সংগ্রহটি বাস্তবায়িত করতে ভুলে যান তবে এটি চালাতে আরও বেশি সময় নিতে পারে তবে এটি এখনও কাজ করবে। স্বতন্ত্র পরীক্ষাগুলি আরও মজবুত এবং নির্ভরযোগ্য।
দ্বিতীয় নম্বরও রয়েছে । অন্যান্য ফ্রেমওয়ার্কগুলি কীভাবে এটি পরিচালনা করে তা আমি নিশ্চিত নই তবে আপনি যদি এমএস টেস্ট প্ল্যাটফর্ম ব্যবহার করেন তবে কোন পরীক্ষায় ব্যর্থ হয়েছে তা আপনি জানতেন না। আপনি যদি ব্যর্থ পরীক্ষায় ডাবল ক্লিক করেন তবে এটি আপনাকে CollectionAssert
ব্যর্থ হিসাবে দেখিয়ে দেবে তবে বাস্তবে ভুলটি হয়েছিল এমন নেস্ট করা Assert
এবং এটি ডিবাগ করা অত্যন্ত কঠিন be এখানে একটি উদাহরণ:
[TestMethod]
public void TestMethod()
{
var numbers = new[] { 1, 2, 3 }.Select(x =>
{
Assert.Fail("Wrong number.");
return x;
});
// This will fail and you won't be sure why.
CollectionAssert.AreEqual(new[] { 1, 2, 3 }, numbers.ToList());
}
এর অর্থ হ'ল প্রথম পরীক্ষাটি আসলে অকেজো কারণ এটি কোনও বাগ খুঁজে পেতে সহায়তা করে না। কোনও সংখ্যাটি অবৈধ বা উভয় সংগ্রহই আলাদা ছিল বলে এটি ব্যর্থ হয়েছে কিনা তা আপনি জানেন না।
কেন? সুতরাং আমি একবারে পুনরাবৃত্তি করতে পারি এমনকি বৈষয়িক সংগ্রহের প্রত্যাশী বিবৃতি দিয়েও
আমি ভাবছি কেন আপনি এটার যত্ন করছেন? এগুলি ইউনিট পরীক্ষা। আপনাকে সেগুলির প্রতিটি বিটকে অনুকূলিত করতে হবে না এবং সাধারণত পরীক্ষাগুলিতে লক্ষ লক্ষ আইটেমের প্রয়োজন হয় না তাই পারফরম্যান্স কোনও উদ্বেগের বিষয় নয়।
আপনার এই জাতীয় পরীক্ষাগুলি বজায় রাখতে হবে তাই আপনার প্রয়োজনীয় কেন তাই আরও জটিল করা উচিত? কাজ হিসাবে সহজ asserts লিখুন।
sequence.WithSideEffect(item => Assert.IsCute(item))
এটিকে পরিষ্কার করার জন্য আপনি নিজেকে একটি সহায়ক ফাংশন করতে পারেন।