如何使用RepoItemInfo参数生成代码?

时间:2018-02-05 09:29:51

标签: ranorex black-box-testing

我们在公司使用Ranorex Studio进行黑盒测试。我是关于黑盒测试的新手。对于第一次自动化测试,我想创建两个测试,这些测试使用通过添加记录模块生成的文件中的多种方法,并通过单击项目,将鼠标右键更改为用户代码并选择“转换”用户代码'。

代码中包含public void Mouse_Click_<something>(RepoItemInfo inputtagInfo, …)形式的方法(名称由我重构)。这意味着每当我想调用任何这样的方法时,我都应该传递一个RepoItemInfo对象。如何定义“正确”对象来调用此方法?换句话说:在info = ???????的右侧写什么?

根据Ranorex帮助页面,使用RepoItemInfo

  

作为用户代码操作的参数可以实现各种可能性   例如提供智能测试操作的框架,定义泛型   技术独立的获取/设定值动作,结合几个   对一个用户代码操作的相关操作,实现复杂   验证等等。

我有以下代码:

namespace FirstTestProject
{
    public partial class OpenIVMAndJobsite
    {
        private GoSearchJobsite gsj;
        private RepoItemInfo info;

        /// <summary>
        /// This method gets called right after the recording has been started.
        /// It can be used to execute recording specific initialization code.
        /// </summary>
        private void Init()
        {
            // Your recording-specific initialization code goes here.
            gsj = new GoSearchJobsite();
            info = ???????;
        }

        public void JobsiteSearch()
        {
            gsj.Mouse_Click_Country(info, Properties.EAustrianCountries.Wien);
        }

        public void Mouse_Click()
        {
            Report.Log(ReportLevel.Info, "Mouse", "Mouse Left Click at {X=0,Y=0}.");
            Mouse.MoveTo(0, 0);
            Mouse.Click(System.Windows.Forms.MouseButtons.Left);
        }

    }
    […]

    public partial class GoAndSearchInJobsite
    {
        /// <summary>
        /// This method gets called right after the recording has been started.
        /// It can be used to execute recording specific initialization code.
        /// </summary>
        private void Init()
        {
            // Your recording specific initialization code goes here.
        }

        public void Mouse_Click_Country(RepoItemInfo atagInfo, string country)
        {
            Report.Log(ReportLevel.Info, "Mouse", "<" + country + ">\r\nMouse Left Click item 'atagInfo' at 16;8.", atagInfo);
            atagInfo.FindAdapter<ATag>().Click("16;8");
        }

        […]

    }

    /// <summary>
    /// Description of Properties.
    /// </summary>
    public static class Properties
    {
        public enum EAustrianCountries
        {
            Alle,
            Burgenland,
            Kärnten,
            Niederösterreich,
            Oberösterreich,
            Salzburg,
            Steiermark,
            Tirol,
            Vorarlberg,
            Wien
        }

    }
}

1 个答案:

答案 0 :(得分:2)

存储库中的每个项目也都有一个对应的ReportItemInfo对象。 例如,如果您有一个ButtonOK按钮,您还会找到ButtonOKInfo个对象。您可以将其与repo.<window>.control机制一起使用。 如果您正在处理窗口本身,则对象将为repo.<window>.selfInfo

希望它有所帮助。

谢谢, 的Manoj