51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2938|回复: 6
打印 上一主题 下一主题

调用函数后取不到值?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-10-31 12:46:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家帮我看看为什么红色部分取不到值?

static in_price,in_total;
static tickets,price,total;
static function retrieve(in dollar_in, in dollar_out)
{
auto dollar_array[];
split(dollar_in, dollar_array,"$");
dollar_out=dollar_array[2];
#pause(dollar_out);
return (dollar_out);
}
static function compare(in com_price,in com_tickets)
{
auto t;
# pause(com_tickets);
# pause(com_price);
t=com_tickets*com_price;
if(t==in_total)
tl_step("compare results:",0,"successful");
else
tl_step("compare results:",1,"failed");
}
set_window ("Flight Reservation", 5);
menu_select_item ("File;Open Order...");
set_window("Flight Reservation");
set_window("Open Order");
button_set("Order No.",ON);
edit_set("Edit_1","55");
button_press("OK");
set_window("Flight Reservation");
edit_get_text("Tickets:",tickets);
edit_get_text("Price:",price);
edit_get_text("Total:",total);
retrieve(price,in_price);
pause(in_price);       #不知道为什么该处取不到 in_price 和 in_total 的值?
retrieve(total,in_total);
pause(in_total);
compare(in_price,tickets);
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2006-10-31 17:14:37 | 只看该作者
in_price是你传进去的参数,参数没有赋值,当然取不到值了,b=retrieve(total,in_total);pause(b); 这样就能得到你要的值了,是调用函数的返回值. 实际上你写的那个函数,只需要一个参数就可以了.如下:
static function retrieve(in dollar_in)
{
auto dollar_out;
auto dollar_array[];
a=split(dollar_in, dollar_array,"$");
dollar_out=dollar_array[a];

#pause(dollar_out);
return (dollar_out);
}
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2006-10-31 17:31:54 | 只看该作者
原帖由 piao_604 于 2006-10-31 17:14 发表
in_price是你传进去的参数,参数没有赋值,当然取不到值了,b=retrieve(total,in_total);pause(b); 这样就能得到你要的值了,是调用函数的返回值. 实际上你写的那个函数,只需要一个参数就可以了.如下:
static func ...



你的这句话提醒了我, 我知道怎么修改了. thank you

static function retrieve(in dollar_in, out dollar_out)
{
........
}
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2006-10-31 17:54:06 | 只看该作者

还是要用俩个参数

如果按照你说的方法只用一个参数的话, 在 retrieve()里没有错, 但是当 funciton compare() 调用

retrieve() 的返回值时就会发生调用错误的返回值, 导致测试的结果不正确.
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2006-11-2 10:47:50 | 只看该作者

这个我运行了是可以的

static in_price,in_total;
static tickets,price,total;
static function retrieve(in dollar_in)
{
auto dollar_array[];
auto dollar_out;
split(dollar_in, dollar_array,"$");
dollar_out=dollar_array[2];
#pause(dollar_out);
return (dollar_out);
}
static function compare(in com_price,in com_tickets)
{
auto t;
# pause(com_tickets);
# pause(com_price);
t=com_tickets*com_price;
if(t==in_total)
tl_step("compare results:",0,"successful");
else
tl_step("compare results:",1,"failed");
}
set_window ("Flight Reservation", 5);
menu_select_item ("File;Open Order...");
#set_window("Flight Reservation");
set_window("Open Order");
button_set("Order No.",ON);
edit_set("Edit_1","5");
button_press("OK");
set_window("Flight Reservation");
edit_get_text("Tickets:",tickets);
edit_get_text("Price:",price);
edit_get_text("Total:",total);
in_price = retrieve(price);
pause(in_price);      
in_total = retrieve(total);
pause(in_total);
compare(in_price,tickets);
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-11-2 10:48:45 | 只看该作者

这个我运行了是可以的

static in_price,in_total;
static tickets,price,total;
static function retrieve(in dollar_in)
{
auto dollar_array[];
auto dollar_out;
split(dollar_in, dollar_array,"$");
dollar_out=dollar_array[2];
#pause(dollar_out);
return (dollar_out);
}
static function compare(in com_price,in com_tickets)
{
auto t;
# pause(com_tickets);
# pause(com_price);
t=com_tickets*com_price;
if(t==in_total)
tl_step("compare results:",0,"successful");
else
tl_step("compare results:",1,"failed");
}
set_window ("Flight Reservation", 5);
menu_select_item ("File;Open Order...");
#set_window("Flight Reservation");
set_window("Open Order");
button_set("Order No.",ON);
edit_set("Edit_1","5");
button_press("OK");
set_window("Flight Reservation");
edit_get_text("Tickets:",tickets);
edit_get_text("Price:",price);
edit_get_text("Total:",total);
in_price = retrieve(price);
pause(in_price);      
in_total = retrieve(total);
pause(in_total);
compare(in_price,tickets);
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2006-11-2 15:16:23 | 只看该作者
学习了一把.
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-15 12:09 , Processed in 0.078573 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表