টিডিডি দিয়ে নতুন প্রকল্প শুরু হচ্ছে


10

আমি টিডিডি অধ্যয়ন করছি এবং আমি পড়েছি যে এটি আপনাকে অ্যাপের নকশা সংজ্ঞায়িত করতে সহায়তা করে, সঠিক?

সুতরাং আমি আরও ভালভাবে বুঝতে সাহায্য করার জন্য একটি নতুন প্রকল্প তৈরি শুরু করার সিদ্ধান্ত নিয়েছি।

আমি একটি সাধারণ ব্যবহারকারীর নিবন্ধকরণ সিস্টেম তৈরি করতে চাই যা এর নাম, ইমেল ঠিকানা, দেশ (একটি তালিকা থেকে একটি চয়ন করবে) এবং ফোন নম্বর জিজ্ঞাসা করবে।

সুতরাং প্রশ্ন ...

আমি ভিএস ২০১০ সালে একটি নতুন সমাধান তৈরি করেছি, একটি নতুন টেস্ট প্রকল্প যুক্ত করেছি এবং কী পরীক্ষাগুলি লিখতে হবে তা আমি জানি না!

যেহেতু এটি আমাকে নকশা সংজ্ঞায়িত করতে সহায়তা করবে, তাই আমি এখানে কোন পরীক্ষাগুলি লিখতে পারি?

কোন সাহায্যের জন্য ধন্যবাদ!

c#  .net  tdd 

1
এটি আপনাকে যেভাবে প্রথমে আপনি যে ধরণগুলি ব্যবহার করতে চলেছেন, আপনি যে ক্লাসগুলি লিখবেন ইত্যাদি সম্পর্কে ভাবতে আপনাকে সহায়তা করবে a শ্রেণীর সংজ্ঞা দিয়ে শুরু করুন এবং পদ্ধতিগুলির জন্য পরীক্ষার কেসগুলি লিখুন, তারপরে পদ্ধতিগুলি বাস্তবায়ন শুরু করুন তাদের পরীক্ষার কেস অনুযায়ী ..
হাফদান

উত্তর:


6

আপনি যখন ইউনিট পরীক্ষাগুলি লিখেন, আপনি আপনার আবেদনের আচরণটি পরীক্ষা করে যাচ্ছেন তাই গুরুত্বপূর্ণ প্রশ্নটি আপনার অ্যাপ্লিকেশনটি কী করে ? এখানে একটি সূচনা:

[TestFixture]
public class RegistrationTests
{
    [Test]
    public void Should_save_new_user_info()
    {
    }

    [Test]
    public void Should_throw_validation_exception_when_email_already_exists()
    {
    }

    [Test]
    public void Should_format_phone_number_when_country_code_is_us()
    {
    }
}

ঠিক আছে, এই সমস্ত পরীক্ষা ইতিমধ্যে পাস, পরবর্তী কি? :)
স্কট হুইটলক

2

কেবলমাত্র একটি পরীক্ষার প্রকল্প তৈরি করা এবং কিছু পরীক্ষার পদ্ধতি লেখাই এক ধরণের টিডিডি, তবে আপনি যদি এমন একটি লাইব্রেরিতে কাজ না করেন যেখানে একটি পরিচিত এপিআই এবং পদ্ধতি কলগুলি ব্যবহারকারীর দ্বারা প্রত্যাশিত কোনও কিছুর সাথে সামঞ্জস্য না করে তবে আমার অভিজ্ঞতায় এটি তেমন সহায়ক হয় না unless । আপনাকে পরীক্ষার সঠিক তালিকা উপস্থিত করতে হবে এবং একটি তুচ্ছ-তুচ্ছ অ্যাপ্লিকেশনটির জন্য এটি করা সত্যিই কঠিন হতে পারে।

আমি স্পেসফ্লো চেষ্টা করার পরামর্শ দিচ্ছি - এটি প্রয়োগগুলি থেকে দুর্দান্তভাবে পৃথক করা পরীক্ষার সংজ্ঞা দেয় এবং বৈশিষ্ট্য ফাইলগুলির কাঠামো আপনাকে আসলে যা পরীক্ষা করছে তা সম্পর্কে ভাবতে বাধ্য করে।

আপনি যখন কোনও বৈশিষ্ট্যটি সংজ্ঞায়িত করেন আপনি ঠিক তেমন কিছু লিখেন

When a user is saved
Then the user should exist

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

একবার আপনার বৈশিষ্ট্যগুলি সংজ্ঞায়িত হয়ে গেলে, সমস্ত পরীক্ষাগুলি উত্পন্ন হয় এবং আপনি ধাপ সংজ্ঞা এবং প্রকৃত অ্যাপ্লিকেশন কোডটি পরীক্ষা করে প্রয়োগ করার সাথে সাথে পাস করতে শুরু করবেন।

একটি সাধারণ অ্যাপ্লিকেশনটির জন্য আপনি কেবল বৈশিষ্ট্যযুক্ত ফাইলগুলি তৈরি করতে পারেন তবে আরও জটিল যে কোনও কিছুর জন্য আগে আরও সম্পূর্ণ স্পেসকে একসাথে রাখাই দরকারী। আমি এটির জন্য একটি আইপ্যাড মাইন্ডম্যাপিং অ্যাপ্লিকেশন ব্যবহার করি তবে আপনি যে কোনও সরঞ্জামটি সবচেয়ে বেশি স্বাচ্ছন্দ্যযুক্ত ব্যবহার করতে পারেন।

"ব্যবহারকারীর নিবন্ধকরণ" এর মতো উচ্চ স্তরের বৈশিষ্ট্যগুলির একটি তালিকা দিয়ে শুরু করুন। এগুলি সরাসরি পরীক্ষা দেওয়ার জন্য খুব বিস্তৃত হতে থাকে, তাই এগুলি সাবফিটচারগুলিতে বিভক্ত করুন যা পরিষ্কারভাবে সংজ্ঞায়িত করা যায় এবং সাধারণত "ব্যবহারকারী সংরক্ষণ করুন" বা "বিদ্যমান ব্যবহারকারীর দেখুন" এর মতো নির্দিষ্ট ব্যবহারকারীর ম্যাপে ম্যাপ করে।

এই প্রতিটি সাবফিটচারের জন্য দৃশ্যের একটি তালিকা প্রয়োজন যা বৈশিষ্ট্যটি কাজ করছে কি না তা সম্পূর্ণরূপে সংজ্ঞায়িত করে "বৈধ ব্যবহারকারীকে সংরক্ষণ করতে পারে" এবং "সদৃশ ব্যবহারকারীর ব্যবহারকারীর সাহায্যে কোনও ব্যবহারকারীকে সংরক্ষণ করা যায় না" এই জাতীয় জিনিস things

আপনি এই তালিকাটি তৈরি করার সাথে সাথে এটি স্পষ্ট হয়ে যাবে যেখানে কাঠামোটি সামঞ্জস্য করা দরকার - যদি আপনি কোনও বৈশিষ্ট্যের জন্য কোনও দৃশ্যের পরীক্ষা দিয়ে আসতে না পারেন, বা আপনি একটি বৈশিষ্ট্যে অনেকগুলি নিয়ে শেষ করেন তবে সম্ভবত বৈশিষ্ট্যটি সংজ্ঞায়িত করা হয়েছে ভুল স্তর এবং বিভক্ত বা পরিবর্তন করা প্রয়োজন।


2

আমার প্রথম পরীক্ষাগুলি টিডিডি-তে কিছু পঠনের পাশাপাশি কোড কাটার সাথে ব্যাক আপ করা ভাল বলে মনে হয়েছিল। Wikipedia নিবন্ধটি বিষয়ে খুব ভাল এবং আপনি অন্যান্য সম্পদ বিভিন্ন ধরণের হতে হবে। বিশেষত কেন্ট বেকের জিনিসগুলি দেখুন - টিডির পিতাকে বাছাই করুন।

আর একটি জিনিস যা আপনাকে এটির দোলনায় যেতে সহায়তা করতে পারে সেগুলি হ'ল কিছু কাতাসা - সহজ, প্রায় নির্বোধ প্রশিক্ষণ মহড়া। রায় ওশেরভের কিছু ভাল আছে।

এর বাইরে, কেবল টিডিডি-র মূল ধারণাগুলি মাথায় রাখুন - একবারে একটি পরীক্ষা লিখুন এবং এটি এবং পূর্ববর্তী সমস্ত পরীক্ষাগুলি পাস না হওয়া পর্যন্ত চলবেন না। কেবলমাত্র বর্তমান পরীক্ষাটি সন্তুষ্ট করার জন্য পর্যাপ্ত কোড লিখুন, আরও লেখার প্রলোভন এড়ান। যেতে যেতে, এখনই বার বার থামুন এবং ভাবুন যে আপনি কোড বা পরীক্ষাগুলি পরিষ্কার করতে পারেন কিনা। সর্বদা একটি লাল (ব্যর্থ পরীক্ষা), সবুজ (পরীক্ষার উত্তীর্ণ), রিফ্যাক্টর চক্রের বিকাশ।

এবং আপনাকে শুরু করতে, সম্ভবত আপনার নামের প্রয়োজনীয়তা দিয়ে শুরু করুন। আপনার কী দরকার হবে?

আপনার সম্ভবত একটি ক্লাসের প্রয়োজন হবে। তার জন্য একটি পরীক্ষা লিখুন (কিছু লোক এটি এড়িয়ে যায় তবে অনুশীলনের জন্য এটি শুরু করার সময়) এবং ক্লাসটি লিখুন।

পরবর্তী আপনার ক্লাসে একটি নাম সঞ্চয় করতে হবে। আপনার ক্লাসটি সত্যই পারে তা প্রমাণ করে একটি পরীক্ষা লিখুন। তারপরে আবার পরীক্ষার পাস করার জন্য কোড লিখুন।

তাহলে সম্ভবত আপনার আরও কিছু বিধি বিধি রয়েছে have হতে পারে আপনি চান যে আপনার নামটি ন্যূনতম সংখ্যক অক্ষর দীর্ঘ হোক। পরীক্ষা লিখুন, এটি ব্যর্থ দেখুন, কোডটি লিখুন।

এবং আরও ...


1

আমি মনে করি আপনাকে একটি সংক্ষিপ্ত উত্তরে টিডিডি ধারণা দেওয়া সম্ভব নয়। এর অনুভূতি পেতে আপনাকে এটিকে অনুশীলনকারী "দেখতে" দরকার to এই বিষয়টি সম্পর্কে আমি যে সবচেয়ে ভাল উত্স খুঁজে পেয়েছি তা হ'ল http://pragprog.com/titles/achbd/the-rspec-book । আপনি আমাকে বলার আগে, রুবি আপনার ভাষা নয়: আঙ্কেল বব এর অগ্রণীটি পড়ুন! ;-)


1
আরএসপেক বই ঠিক আছে। যদি ওপি টিডিডি-তে কোনও বই পড়তে চলেছে তবে এটি হওয়া উচিত: amazon.com/Test-Driven-Del વિકાસment- Kent
জুলিও

0

আপনি একটি পরীক্ষা সেট আপ করতে চাইতে পারেন যা ইমেল ক্ষেত্রে একাধিক বিভিন্ন মান যুক্ত করার চেষ্টা করে, কিছুটি বৈধ এবং অন্যটি নয়। সমস্ত পরীক্ষার প্রত্যাশিত মান না দেওয়া পর্যন্ত বিকাশ বন্ধ করবেন না। ওটার মতো জিনিস.


0

আপনি যেমন সিস্টেমটি বর্ণনা করেছেন, অ্যাপ্লিকেশন পর্যায়ে কেবল একটি পরীক্ষা রয়েছে:

[পরীক্ষা] সর্বজনীন শূন্য সেভ_আর_রেটরিভ_উজার (স্ট্রিং নাম, স্ট্রিং ইমেল, ...) {// সংরক্ষণ করুন // পুনরুদ্ধার করুন // যাচাই করুন}

আপনি প্রয়োজনীয়তাগুলি সংশোধন করার সাথে সাথে আরও পরীক্ষা যুক্ত করুন।

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