Rational Robot如何测试帮助c++程序员识别自定义或第三方控件

   

 

大家都知道Rational Robot利用Delphi Enabler支持识别Delphi第三方控件和自定义控件,但是识别C++程序中遇到的第三方控件呢?我将在下边介绍识别他的方法,希望对大家有所帮助。

 

SQA Object Testing Control

 

如果你测试软件是vb编写的,那么利用SQA Object Testing Control: (SQAOTE32.ocx)来获得控件信息很对你来说很熟悉,通过它可以获取到软件运行时候的控件信息和方法。Robot可以根据提供的信息建立强壮的脚本,验证那些方法或功能是否正确,也就是最后的验证点。

如果你的c或则c++程序中包含自定义或者第三方的ActiveXocx)控件,你可以同样把这个控件放到每一个包含第三方控件或者用到自定义控件的窗体上。

安装Rational TeamTest或者RobotObject Testing Control (SQAOTE32.ocx)会默认安装到系统目录system32:C:/WINNT/system32/sqaote32.ocx.

 

添加Rational ActiveX Test Control

 

  如果想让ActiveX Test Control起作用,需要在VC中设置ActiveX可用。以下用MFC举例

第一.      建立工程,设置ActiveX控件可用

     

第二.      在有第三方控件的地方添加Rational ActiveX Test Control

有一个窗体中包含MSTreeView,运行Rational Robot利用object properties来抓取MSTreeView属性,Rational Robot无法识别该对象(对象为UNKNOW)。添加SQA Object Testing Control(右键插入ActiveX控件,出现下图窗体)。

添加Rational ActiveX Test Control后窗体上出现一个robot的图标,你不用在代码中做任何处理就可以使用他。SQA Object Testing Control是个不可见控件,运行软件后他不会显示在窗体上。

 

   

     

再没有添加SQA Object Testing Control的时候Robot只能识别这个控件的通用属性,添加后Robot可以识别自定义控件或者插件的大部分属性。

 

 

注意

如果用到得自定义控件继承自MFC或者用APIS实现,即使添加SQA Object Testing Control控件Robot也无法有效的工作。那么定义该对象继承相近的类别。

方法1:运行的时候当用Object properties识别对象为unknow的时候,在出现的对话框中定义无法识别控件到相近的基类中。

方法2:打开robotTools->General Options,切换到object mapping页面。选择基类,然后添加无法是别的控件到该类中。

这样做可以识别该控件的通用类别属性。

 

总结:针对无法识别自定义和第三方控件建议添加Rational ActiveX Test Control,通过他能使Robot识别对象的大多数属性,帮助Robot建立强壮的脚本。

 

备注:以上运用在Rational 2003VC Studio.NET 2003上测试通过

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的实现RationalNumber类的C++代码: ```c++ #include <iostream> using namespace std; class RationalNumber { private: int numerator; // 分子 int denominator; // 分母 public: RationalNumber() { numerator = 0; denominator = 1; } RationalNumber(int numerator, int denominator) { this->numerator = numerator; this->denominator = denominator; simplify(); // 约分 } // 获取分子 int getNumerator() const { return numerator; } // 获取分母 int getDenominator() const { return denominator; } // 赋值运算符重载 RationalNumber& operator=(const RationalNumber& other) { if (this != &other) { numerator = other.numerator; denominator = other.denominator; } return *this; } // 加法运算符重载 RationalNumber operator+(const RationalNumber& other) { int newNumerator = numerator * other.denominator + other.numerator * denominator; int newDenominator = denominator * other.denominator; return RationalNumber(newNumerator, newDenominator); } // 减法运算符重载 RationalNumber operator-(const RationalNumber& other) { int newNumerator = numerator * other.denominator - other.numerator * denominator; int newDenominator = denominator * other.denominator; return RationalNumber(newNumerator, newDenominator); } // 乘法运算符重载 RationalNumber operator*(const RationalNumber& other) { int newNumerator = numerator * other.numerator; int newDenominator = denominator * other.denominator; return RationalNumber(newNumerator, newDenominator); } // 除法运算符重载 RationalNumber operator/(const RationalNumber& other) { int newNumerator = numerator * other.denominator; int newDenominator = denominator * other.numerator; return RationalNumber(newNumerator, newDenominator); } // 约分 void simplify() { int gcd = getGCD(numerator, denominator); numerator /= gcd; denominator /= gcd; if (denominator < 0) { numerator *= -1; denominator *= -1; } } // 获取最大公约数 int getGCD(int a, int b) { if (b == 0) { return a; } return getGCD(b, a % b); } // 输出有理数 void print() const { if (denominator == 1) { cout << numerator << endl; } else { cout << numerator << "/" << denominator << endl; } } }; int main() { RationalNumber r1(2, 3); RationalNumber r2(3, 4); RationalNumber r3 = r1 + r2; RationalNumber r4 = r1 - r2; RationalNumber r5 = r1 * r2; RationalNumber r6 = r1 / r2; cout << "r1 = "; r1.print(); cout << "r2 = "; r2.print(); cout << "r1 + r2 = "; r3.print(); cout << "r1 - r2 = "; r4.print(); cout << "r1 * r2 = "; r5.print(); cout << "r1 / r2 = "; r6.print(); return 0; } ``` 在该代码中,定义了一个 `RationalNumber` 类,包含了分子和分母两个私有成员变量,以及一些公有成员函数,包括构造函数、赋值运算符重载、加法、减法、乘法、除法运算符重载、约分、获取最大公约数、输出有理数等。在 `main` 函数中,创建了两个有理数对象 `r1` 和 `r2`,并对其进行了加、减、乘、除等运算,最后输出了结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值