मैं अपने पैरों को SpecFlow से गीला कर रहा हूं, और मैं वास्तव में इसका आनंद लेता हूं।SpecFlow - एकाधिक से पहले सेनेरियो विधियों का ऑर्डरिंग
कुछ कांटेदार मुद्दों के अलावा ... सुविधा और परिदृश्य सेटअप कोड की तरह।
एक में "सामान्य प्रयोजन" फ़ाइल InfrastructureSteps.cs
कहा जाता है, मुझे लगता है कि हर परिदृश्य के लिए चलाने की जानी चाहिए सामान्य सेटअप कोड है - इसलिए मेरी विधि इस तरह दिखता है:
[BeforeScenario]
public void SetupDbContext()
{
// define some basic stuff, set up a database transaction context etc.
}
यह से पहले चलाने के लिए की जरूरत है प्रत्येक परिदृश्य, और अब तक, यह ठीक काम करता है।
लेकिन अब, मैं एक परीक्षण-विशिष्ट चरण फ़ाइल में दो परिदृश्यों कि भी काफी व्यापक सेटअप की आवश्यकता को चलने से पहले किया जा सकता है। तो मैं एक टैग के साथ .feature
में अपने परिदृश्य में चिह्नित:
@needs_extra_setup
Scenario: .....
Given .....
When .....
Then ......
और कार्यान्वित की एक परीक्षण विशेष BeforeScenario
सेटअप विधि:
[BeforeScenario("needs_extra_setup")]
public void DoExtraSetupForMyScenario()
{
// do stuff
}
यह काम करता है - यह कहा जाता हो जाता है - लेकिन यह से पहले कहा जाता हो जाता है सामान्य उद्देश्य [BeforeScenario]
विधि को कॉल किया जाता है :-(और इस प्रकार यह विफल हो जाता है - उस सामान्य उद्देश्य सेटअप विधि में स्थापित होने वाली सामग्री मौजूद नहीं है और मेरा कोड विफल होने का कारण बनता है।
तो [BeforeScenario]
विधियों को ऑर्डर करने के लिए SpecFlow में कोई तरीका है? या क्या मैं एक "बेस" [BeforeScenario]
विधि को निष्पादित करने के लिए एक विशिष्ट [BeforeScenario]
विधि बता सकता हूं जैसे अतिव्यापी विधि में आधार विधि को कॉल करना?
बेशक मुझे लगता है कि "आधार" [BeforeScenario]
विधि स्पष्ट रूप से कह सकते हैं - लेकिन यह एक स्लेज-हथौड़ा दृष्टिकोण की तरह एक सा लगता है .....
कोई भी विचार? विचार? संकेत दिए गए?
आप पहले से फीचर – Heliac