-1

我有一个接受TWebRequest参数的函数,例如:

function foo(const request: TWebRequest ): boolean;

我如何创建TWebRequest并设置一些属性,例如:

  • 主持人
  • 服务器端口
  • 查询字段
  • 内容字段

我努力了:

var
  aWebRequest: TWebRequest;
begin
  aWebRequest := TWebRequest.Create;

但是在创建时 Delphi 引发了一个异常:

第一次机会例外,$XXXXXXXX。带有消息“抽象错误”的异常类 EAbstractError。

后代是TIdHTTPAppRequest,但它需要:

constructor TIdHTTPAppRequest.Create(
  AThread: TIdContext; 
  ARequestInfo: TIdHTTPRequestInfo; 
  AResponseInfo: TIdHTTPResponseInfo
);

每个参数都需要其他对象等。

是否有一种简单的方法(例如第三方单元、未知片段或技巧)来模拟单元测试请求?

4

1 回答 1

1

EAbstractError通常意味着您正在尝试实例化通用抽象类(例如TStrings),而不是包含所需实现的后代(例如TStringList)。所以你需要找到TWebRequest后代并使用它。

出于嘲弄的目的,您可以尝试编写自己的“空”后代,但我怀疑这会按预期工作。

于 2018-07-10T06:49:11.977 回答