অজগর [বন্ধ] দিয়ে বিডিডি অনুশীলন করা


133

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


1
ফ্লোপ "একটি ন্যূনতম যাদু সহ আরএসপেক বিডিডি শৈলীতে পরীক্ষা লেখার অনুমতি দেয়"।
কার্ল জি

7
কেবলমাত্র এসও তে অত্যন্ত তথ্যমূলক সমান "গঠনমূলক নয়" does
jeremyjjbrown

উত্তর:


38

আয়ান বাইকিং আচরণ চালিত ডিজাইনের জন্য ডক্টেস্ট ব্যবহার করার পরামর্শ দিয়েছেন :

আমি ব্যক্তিগতভাবে একটি আচরণ চালিত ডিজাইনের স্টাইলে নাক এবং শূন্যস্থান ব্যবহার করতে ঝোঁক । বিশেষত, নাকের জন্য স্পেক প্লাগইন বিডিডির জন্য দুর্দান্ত।


7
অ্যান্ড্রু বেনেটস সম্প্রতি কেন বেশিরভাগ পোস্ট লিখেছেন যে কেন তিনি ভাবেন যে ডক্টেস্টকে অপব্যবহার করা হয়। andrew.puzzling.org/diary/2008/October/23/narrative-tests andrew.puzzling.org/diary/2008/October/24/more-doctest-problems
ddaa

4
আমি মনে করি ডক্টেস্ট আসলে বিডিডি-র দর্শনের সাথে আরও বেশি জড়িত, যখন আপনি এটির মতো আচরণ করেছিলেন: আপনি সফ্টওয়্যারটি নিয়ে লিখতে শুরু করেন, এবং তারপরে পরীক্ষাগুলির উদাহরণগুলির সাথে ছেদ করেন। এটিকে "ডকুমেন্ট চালিত বিকাশ" হিসাবেও বর্ণনা করা হয়েছে - মূল বিষয়টি কাজের অভ্যন্তরীণ ইউনিট নয় বরং বাহ্যিকর বর্ণনাযোগ্য কার্যকারিতাতে ফোকাস করা। আমি মনে করি traditionতিহ্য xUnit এটি করতে ভয়ঙ্কর।
আইয়ানব

48

লেটুস অর্থ পাইথনের জন্য শসার মতো সরঞ্জাম: http://lettuce.it/

আপনি github.com/gabrielfalcao/lettuce এ উত্সটি দখল করতে পারেন


লেটুস বিবেচনা করা উইন্ডোজ ব্যবহারকারীদের লেখার সময় জানা উচিত যে ওএসের জন্য সমর্থন সোজা নয় ward
লিওনিগমিগ

7
জ্যাঙ্গোর সাথে লেটুস ব্যবহার করতে ইচ্ছুক যে কোনও ব্যবহারকারীদের সচেতন হওয়া উচিত যে ডিফল্টরূপে, এটি পরীক্ষার জন্য আপনার ডিফল্ট ডাটাবেস ব্যবহার করে। এই আকর্ষণীয় নকশা পছন্দটি আমার জন্য একটি উত্পাদন ডেটাবেস ব্যয় করেছে :(
রাচেল

3
লেটুসের পাশাপাশি কিছু বিকল্প রয়েছে যেমন বিহেভ; এখানে তাদের তুলনা করে এবং আচরণের পক্ষে একটি ব্লগ পোস্ট রয়েছে
ড্রিফ্যাচ্যাচার

1
ধন্যবাদ @ সিফ্যাংস - লেটুর চেয়ে বড় প্রকল্পগুলির জন্য বিহেভ অনেকটা পরিচালনাযোগ্য দেখায়।
জামেস্ক

আপনি যদি জাঙ্গো ব্যবহার করে থাকেন তবে লেটুস ব্যবহার থেকে নিজেকে কিছুটা সময় সাশ্রয় করুন, বর্তমান সংস্করণ ২.১৯ সর্বশেষ জ্যাঙ্গো দিয়ে কাজ করে না।
জেমস লিন

46

আমি সত্যিই আচরণ করার পরামর্শ দিচ্ছি ।

পাইথনের জন্য শসার একটি ক্লোন খুঁজছি, আমি লেটুস ব্যবহার শুরু করেছি, তবে এটি একটি চমত্কারভাবে তৈরি নকশাকৃত প্রতিরূপ পেয়েছি। খুব আনপাইথোনিক।

তারপরে আমি আচরণটি আবিষ্কার করেছি এবং এর সাথে সত্যই খুশি হয়েছি।


11
আমি লেটস থেকে আচরণ করতে শুরু করেছি যখন জ্যাঙ্গো প্রকল্পে পরীক্ষার জন্য ডিফল্ট ডেটাবেস ব্যবহারের ক্ষেত্রে তার ডিফল্ট আচরণটি আমাকে একটি লাইভ সার্ভারে একটি প্রোডাকশন ডেটাবেসের জন্য ব্যয় করে :( আমি সত্যিই আচরণ করতে পছন্দ করি; আমি জাজানো-আচরণ প্রকল্পটি এটিতে আটকানোর জন্য শুরু করেছি) জাজানো
রাচেল

1
আমি আপনার ব্যথা অনুভব করি, এছাড়াও আপনার দুঃখ কষ্টটি জাঙ্গো বাস্তুতন্ত্রের উন্নতিতে অবদান রেখে দেখে আমি আনন্দিত। ;-)
জন ওয়াং

1
আমি কি বৈশিষ্ট্য ফাইলগুলি ছাড়া আচরণ ব্যবহার করতে পারি? আমার নন-টেকনিক্যাল ব্যবহারকারী নেই তাই এগুলি লেখা আমার কাছে কেবল শোরগোল। যদি কেউ আমার প্রদত্ত / কখন / পরে পরীক্ষাগুলি পড়তে না পারে তবে সেখানে কোনওভাবেই তাদের কোনও ব্যবসা নেই।
jeremyjjbrown

29

আমি আপনাকে বিডিডি এবং টিডিডি অনুশীলনে প্রোগ্রামারদের সহায়তা করার জন্য বিকাশিত সরঞ্জামগুলির একটি সেট ব্যবহার করার পরামর্শ দিচ্ছি। এই সরঞ্জাম সেটটি রচনা করেছেন: পাইকিউকস , স্পেকলাউড , লুডিব্রিয়ো এবং হ্যাড - ডিএসএল

শ্যাড -ডিএসএল আপনাকে আরএসপেকের মতো প্রত্যাশা দেবে। আরএসপেক প্রত্যাশা এপিআই দিয়ে আপনি যা কিছু করতে পারেন, তা-ডিএসএলও করা উচিত। আপনি গিথুব থেকে সর্বশেষতম পরিবর্তনটি ধরতে পারেন ।

স্পেকলাউড আপনাকে বিডিডি -র মতো ইউনিটসেট চালাতে সহায়তা করে। এটি করে আপনি এটি ইনস্টল করতে পারেন

pip install specloud

লুডিব্রিও পরীক্ষার দ্বৈত (মকস, স্টাবস এবং ডামি) জন্য একটি গ্রন্থাগার। এর মাধ্যমে ইনস্টল করুন

pip install ludibrio

এবং পাইকুকস বিডিডি-র প্রধান সরঞ্জাম। এটি সিনারিও ইত্যাদি চালিত করবে আবার,

pip install pycukes

আরও তথ্যের জন্য দয়া করে পাইপিতে সরঞ্জামের ডকুমেন্টেশনটি পড়ুন


আপনার উত্তরের বিশদ অনুসন্ধানের জন্য এই দরকারী নথিটি পেয়েছেন: arxiv.org/pdf/1007.1722
amit

আমি should-dsl চাই। আমি পাইথন বিডিডি-র জন্য একটি ডিএসএল বিবেচনা করছি - কয়েকটি আছে, এটি বেশ প্রকাশ্য বলে মনে হয়।
ড্যানি স্ট্যাপল

পিরামিড নামে একটি বিডিডি কাঠামো সম্পর্কে কোনও তথ্য খুঁজে পাচ্ছি না। @ ফেইড্রাসের লিঙ্কযুক্ত কাগজে উল্লিখিত লিঙ্কটি একটি সন্দেহজনক চেহারা সাইটের দিকে নিয়ে যায় যা পরীক্ষার সাথে কিছুই করার থাকে না এবং ওয়েব ফ্রেমওয়ার্কটি পিরামিডের দিকে গুগলিং পয়েন্ট করে । যে কেউ একটি আপ-টু-ডেট লিঙ্ক সরবরাহ করতে পারে?
Björn Pollex

1
আমি নিশ্চিত দৃ DS়তা ডিএসএল পছন্দ করি ।
ফতুহোকু

@ বিজার্নপ্লেক্স, পিরামিড ওয়েব ফ্রেমওয়ার্কের কারণে পিরামিড নামটি এই সরঞ্জামগুলির নির্মাতারা ব্যবহার করতে পারেন নি। এখন তারা কেবল আলাদা করা সরঞ্জাম।
18:37

11

দুর্দান্ত পোস্ট এবং উত্তর। শুধু অন্তর্ভুক্ত করা আপডেটের চেয়েছিলেন সতেজ হিসাবে আমি pycukes বিরত হয় পড়া এই তালিকায়। ফ্রেডেনের সাথে বিডিডি এবং জ্যাঙ্গো ব্যবহার সম্পর্কে একটি ভাল পোস্ট এখানে


9

আপনি অভিব্যক্তিপূর্ণ প্রতিবেদনের জন্য "নিশ্চিত" ব্যবহার করতে পারেন (আরএসপেকের মতো)


Parabens! আপনি ম্যাজিক.পিতে কোডটি দিয়ে আমার মনকে পুরোপুরি উড়িয়ে দিয়েছেন। পাইথনে "এক্সটেনশন পদ্ধতি" (ওপেন ক্লাস) সম্ভব হয়েছিল তা আমার কোনও ধারণা ছিল না।
এমডিহটকাট

8

পাইকুরেসি প্রকল্পটি পাইথনের বিডিডির জন্য একটি ডোমেন-নির্দিষ্ট ভাষা সরবরাহের একটি প্রচেষ্টা।

ডক্টেস্টের বিপরীতে, যা এপিআই স্তরে কাজ করে, এটি ওয়েব পৃষ্ঠা লোড করা এবং ফর্ম জমা দেওয়ার মতো উচ্চ স্তরের ক্রিয়াকলাপগুলিকে এনকোড করে। আমি এটি ব্যবহার করি নি তবে এটি যদি আপনি খুঁজছেন তবে কিছুটা আশাব্যঞ্জক মনে হচ্ছে।


6

আমি পাইকুরেসিটি অনেক পছন্দ করি । আমি আজকাল এটি একটি মাঝারি আকারের প্রকল্পে বাস্তবায়ন করছি।


3
লেটস তুলনায় যে কেউ ভাগ করে নিতে পারে সাম্প্রতিক যে কোনও পিক্যুসিউরি বনাম আমি আগ্রহী।
মিশেল

তুলনামূলকভাবে খুব ফ্রেশেনকে (উপরের উত্তরে লিঙ্ক করা) অন্তর্ভুক্ত করুন।
amit

ইতিমধ্যে এখানে জিজ্ঞাসা করা হয়েছে: quora.com/…
amit

6

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

পরীক্ষার কোড:

from pyspecs import given, when, then, and_, the, this

with given.two_operands:
    a = 2
    b = 3

    with when.supplied_to_the_add_function:
        total = a + b

        with then.the_total_should_be_mathmatically_correct:
            the(total).should.equal(5)

        with and_.the_total_should_be_greater_than_either_operand:
            the(total).should.be_greater_than(a)
            the(total).should.be_greater_than(b)

    with when.supplied_to_the_subtract_function:
        difference = b - a

        with then.the_difference_should_be_mathmatically_correct:
            the(difference).should.equal(1)

কনসোল আউটপুট:

# run_pyspecs.py

  |  given two operands 
  |    when supplied to the add function 
  |      then the total should be mathmatically correct 
  |      and the total should be greater than either operand 
  |    when supplied to the subtract function 
  |      then the difference should be mathmatically correct 

(ok) 6 passed (6 steps, 1 scenarios in 0.0002 seconds)

4

আমি সম্ভবত পয়েন্টটি পুরোপুরি অনুপস্থিত, তবে আমি মূল বিডিডি পেপারটি যা ধরে রেখেছিলাম তা হ'ল বিডিডি কিছু সেরা অনুশীলনের উপর জোর দেওয়ার জন্য কেবল টিডিডি পুনরায় প্রচার করা হয়েছিল ।

যদি আমার ব্যাখ্যাটি সঠিক হয়, আপনি কেবলমাত্র কোনও এক্স ইউনাইট বাস্তবায়নে নাম পরিবর্তন করে একটি বিডিডি কাঠামো পেতে পারেন । সুতরাং কেবল এগিয়ে যান এবং স্ট্যান্ডার্ড লাইব্রেরির ইউনিটেস্ট ব্যবহার করুন ।

সম্পাদনা করুন: একটি দ্রুত গুগল চিজ শপের একটি আচরণ মডিউল তৈরি করেছে । সেখানে বিডিডির জন্য আরও তল্লাশি করে অন্য কিছু পাওয়া যায়নি।


টিডিডি হ'ল বিডিডির চেয়ে একেবারে আলাদা স্কেলে বিপ্লব অনুশীলন। তবুও আমি বিডিডি স্টাইলে পরীক্ষামূলকভাবে লেখার পদ্ধতিটির প্রশংসা করতে এসেছি।
JtR

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

আমি bdd youtube.com/watch?v=edaUEzdJow সম্পর্কে এই আলোচনা পছন্দ করি । আমি স্পেসিফিকেশন লেখার একটি ভাল উপায় দেখায় এবং এটি পরীক্ষার মতো করে রাখি।
আইসবাআ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.