2013-11-28 22 views
0

中定義變量爲全局變量,下面是我的Specflow項目的Step Definition類的摘錄。C#如何在(Step Defintion)類

第一種方法public void WhenIExtractTheReferenceNumber()我可以成功地從被測應用程序中提取文本,並且我已經使用Console.WriteLine()證明了這一點。

我需要能夠在其他方法中使用此文本與我的班級即使。 public void WhenIPrintNumber();但我不知道如何做到這一點!

我讀了關於獲取/設置,但我無法得到這個工作。所以我在想,是否有可能讓我的var結果以某種方式出現,這樣我可以在測試過程中隨時調用它?

namespace Application.Tests.StepDefinitions 
    { 
     [Binding] 
     public class AllSharedSteps 
     { 

     [When(@"I extract the reference number")] 
     public void WhenIExtractTheReferenceNumber() 
     { 
      Text textCaseReference = ActiveCase.CaseReferenceNumber; 
      Ranorex.Core.Element elem = textCaseReference; 
      var result = elem.GetAttributeValue("Text"); 
      Console.WriteLine(result); 
     } 

     [When(@"I print number")] 
     public void WhenIPrintNumber() 
     { 
      Keyboard.Press(result);     
     } 
    } 
} 

在此先感謝您的任何想法。

+0

我不熟悉您使用的框架,但在我看來,你可以讓'result'成爲'AllSharedSteps'類的靜態成員。您可能需要從類的靜態構造函數中分配它的值,以便運行哪些測試以及以何種順序進行測試並不重要。 – jcarpenter2

回答

0

這裏是解決方案我的問題。現在我可以從我班的任何方法訪問我的變量。我還包括我用來分割我的字符串,然後使用字符串的第一部分的代碼。在我來說,我需要的數字部分「12345 - 一些文本」

namespace Application.Tests.StepDefinitions 
{ 
    [Binding] 
    public class AllSharedSteps 
    { 
     private string result; 
     public Array splitReference; 

     [When(@"I extract the case reference number")] 
     public void WhenIExtractTheCaseReferenceNumber() 
     {    
      Text textCaseReference = ActiveCase.CaseReferenceNumber; 
      Ranorex.Core.Element elem = textCaseReference; 
      result = elem.GetAttributeValue("Text").ToString(); 
      splitReference = result.Split('-'); // example of string to be split '12345 - some text' 
      Console.WriteLine(splitReference.GetValue(0).ToString().Trim()); 
     } 

     [When(@"I print number")] 
     public void WhenIPrintNumber() 
     { 
      Keyboard.Press(result); // prints full string 
      Keyboard.Press(splitReference.GetValue(0).ToString()); // prints first part of string i.e. in this case, a reference number 
     } 
    } 
} 

我希望這種幫助別人:)