Ranorex入门指南41 – 引用外部DLL

上一节,我们引用了同一个项目中不同命名空间的类,来生成期望字符串。这一节,我们来看看如何引用外部的DLL中的类,来生成期望字符串。

首先,我们需要用Visual Studio 2010来建立一个C#的DLL项目,其项目名叫MyRanorex,其中有一个类StringTest.cs,其代码如下:
using System;
using System.Collections.Generic;
using System.Text;

namespace MyRanorex
{
public class StringTest
{
public string AddHello(string str)
{
return “Hello ” + str;
}

}
}

其中只有一个函数AddHello()用来生成期望字符串。

由于,我是在不同的机器上生成和使用DLL的,为了防止出现版本不兼容的问题,编译DLL的时候,将项目属性的目标框架设为了.net framework 2.0。如果你是在同一台机器上生成和使用DLL,则不需要做此步。

然后编译该项目,将生成的MyRanorex.dll拷贝到安装了Ranorex studio的机器上,然后在项目里面引用该DLL。

接着修改测试代码如下:
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
using System.Drawing;
using System.Threading;
using WinForms = System.Windows.Forms;

using Ranorex;
using Ranorex.Core;
using Ranorex.Core.Testing;

using MyRanorex;

namespace SimpleGUITest
{
///
/// Description of SimpleCode.
///

[TestModule(“AD31D9A0-458D-4B4E-BF25-B5D92EAFE8B6”, ModuleType.UserCode, 1)]
public class SimpleCode : ITestModule
{
SimpleGUITestRepository repo = SimpleGUITestRepository.Instance;
///
/// Constructs a new instance.
///

public SimpleCode()
{
// Do not delete – a parameterless constructor is required!
}

///
/// Performs the playback of actions in this module.
///

/// You should not call this method directly, instead pass the module
/// instance to the method
/// that will in turn invoke this method.
void ITestModule.Run()
{
Mouse.DefaultMoveTime = 300;
Keyboard.DefaultKeyPressTime = 100;
Delay.SpeedFactor = 1.0;

DLLTest();

}

void DLLTest()
{
repo.SimpleGUI.SearchTimeout = new Duration(1000);
if (!repo.SimpleGUI.SelfInfo.Exists())
{
Host.Local.RunApplication(“C:\\SimpleGUI.exe”, “”, “”, false);
}
repo.SimpleGUI.Self.Activate();

string str = “Ranorex”;

// clean the text field first
repo.SimpleGUI.Text.TextValue = “”;

// input
repo.SimpleGUI.Text.TextValue = str;

repo.SimpleGUI.AddHello.Check();

repo.SimpleGUI.ButtonSay.Click();

string result = repo.SimpleGUI.TextSay.TextValue;

StringTest stringTest = new StringTest();

string expectStr = stringTest.AddHello(str);

Report.Info(“The result text is ” + result);
Report.Info(“The expect text is ” + expectStr);

// we expect the check pass
Validate.IsTrue(result==expectStr, “Check result”);
}

下面这两句的作用就是使用DLL里面定义的StringTest类的AddHello函数生成期望字符串。

StringTest stringTest = new StringTest();

string expectStr = stringTest.AddHello(str);

Leave a comment

请输入正确的验证码