2017-07-18 10 views
9

मैं चरणों में webdriver इंजेक्ट करने की कोशिश कर रहा हूं। मैंने this instructions का उपयोग किया है और यह अच्छी तरह से काम करता है।ककड़ी इंजेक्शन ककड़ी में कैसे काम करता है?

विचार वेबड्राइवर को सेवा कक्षाओं में चरणों के रूप में इंजेक्ट करना है। प्रारंभिक चरण में, आपको निम्न निर्भरता जोड़ने की आवश्यकता है।

<dependency> 
    <groupId>info.cukes</groupId> 
    <artifactId>cucumber-spring</artifactId> 
    <version>1.2.5</version> 
    <scope>test</scope> 
</dependency> 

निर्भरता इंजेक्शन में शामिल तीन मुख्य वर्ग हैं। यहां हम उन्हें एक-एक करके पेश करते हैं।

enter image description here

BaseUtil

BaseUtil वर्ग जो WebDriverof सेलेनियम के लिए एक विशेषता है। वर्ग काफी सरल है:

public class BaseUtil { 

private WebDriver driver; 

public WebDriver getDriver() {return driver;} 

public void setDriver(WebDriver driver) { this.driver = driver;} 
} 

हुक

हुक वर्ग @Before, @After शामिल हैं। विधि testInitialier() WebDriver फ़ाइल फ़ाइल लोड करने और एक उदाहरण बनाने के लिए ज़िम्मेदार है, जबकि विधि testTearDown() ब्राउज़र को बंद करने के लिए ज़िम्मेदार है।

public class Hook extends BaseUtil{ 

    BaseUtil base; 


    @Before 
    public void testInitializer(){ 
     File file = new 
      File(IgniteTaskApplication.class.getClassLoader().getResource("driver/chromedriver.exe").getFile()); 
     String driverPath=file.getAbsolutePath(); 
     System.out.println("Webdriver is in path: "+driverPath); 
     System.setProperty("webdriver.chrome.driver",driverPath); 
     base.setDriver(new ChromeDriver()); 
    } 

    public Hook(BaseUtil base) { 
     this.base = base; 
    } 

    @After 
    public void tearDownTest(){ 
     base.getDriver().close(); 
    } 
} 

कदम

और चरणों वर्ग चरणों जो संकलित सुविधाओं फ़ाइल से आया हैं। ग्रहण में फीचर फ़ाइल को संकलित करने के लिए आपको अपने ग्रहण में एक्लिप्स-ककड़ी प्लगइन स्थापित करने की आवश्यकता है।

public class ClickButton_Steps extends BaseUtil{ 
    BaseUtil base; 

    public ClickButton_Steps(BaseUtil base){ 
     super(); 
     this.base=base; 
    } 

    @When("^I clcik on the button$") 
    public void i_clcik_on_the_button() throws Throwable { 
     cb=new ClickButtonPage(base.getDriver()); 
     cb.navigator(); 
    } 

     // The other steps ... 
} 

मैं इसे कैसे चला सकता हूं?

ओपन सुविधा फ़ाइल -> के रूप में चलाएँ -> JUnit

प्रश्न

मैं क्या एक तरह से है जो यह की ओर जाता है में चल तरीकों में से आदेश है सोच रहा हूँ के साथ चलाने के लिए निर्भरता अन्तःक्षेपण?

मुझे लगता है कि आदेश का पालन के रूप में है:

  1. JUnit @Before विधि है जो है testInitializer()
  2. testInitializer() हुक कक्षा में है, इसलिए यह Hook वर्ग का एक उदाहरण बनाने के लिए की जरूरत है कहते हैं।
  3. यह हुक वर्ग के कन्स्ट्रक्टर को कॉल करने की ओर जाता है।

लेकिन, मैं बाकी चरणों को समझ नहीं पा रहा हूं। शायद यह भी सच नहीं है। मेरा मतलब है, मेरे पास एक कार्यात्मक कोड है लेकिन मैं यह नहीं समझा सकता कि यह कैसे काम करता है?

उत्तर

1

जैसा कि मैं आपको सही ढंग से समझता हूं आप जुनीट को ककड़ी-वसंत के साथ एक परीक्षण ढांचे के रूप में उपयोग करते हैं।जुनीट निम्नलिखित जीवन चक्र प्रदान करता है।

जब आप एनोटेशन के साथ विधि को एनोटेट करते हैं तो इससे पहले कि यह आपके पास प्रत्येक परीक्षण से पहले इस विधि को कॉल करेगा। संसाधनों की सफाई के लिए @After का उपयोग किया जा सकता है और प्रत्येक परीक्षण के बाद कॉल किया जा सकता है।

आपका परीक्षण प्रवाह जब आप परीक्षण चलाने:

  • testInitializer
  • i_clcik_on_the_button
  • tearDownTest

इसके अलावा, आप System.out के बजाय लॉगिंग (slf4j) इस्तेमाल कर सकते हैं। println और परीक्षण प्रवाह को ट्रैक करना आसान होगा।

संबंधित मुद्दे