C#如何在(步骤定义)类中将变量定义为全局变量

时间:2013-11-28 13:12:29

标签: variables global

下面的

是我的Specflow项目的Step Definition类的摘录。

在第一种方法 public void WhenIExtractTheReferenceNumber()我可以成功地从被测试的应用程序中提取文本,并且我已经使用Console.WriteLine();

证明了这一点。

我需要能够在我的班级 I.e中使用其他方法中的这个文本。 public void WhenIPrintNumber(); 但我不知道该怎么做!

我读到了Get / Set,但是我无法使用它。所以我想我是否有可能以某种方式使我的 var result 全局化,以便我可以在测试期间随时调用它?

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);                
        }
    }
}

提前感谢任何想法。

1 个答案:

答案 0 :(得分: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
        }
    }
}

我希望这有助于其他人:)