我有一个函数可以通过参数接受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
);
每个参数都需要其他对象等。
是否有一种简单的方法(例如,第三方单元,未知代码段或技巧)来模拟用于单元测试目的的请求?
答案 0 :(得分:1)
EAbstractError
通常意味着您试图实例化通用抽象类(例如TStrings
),而不是实例化包含所需实现的后代(例如TStringList
)。因此,您需要找到TWebRequest
后代并使用它。
出于嘲笑目的,您可以尝试编写自己的“空”后代,但是我怀疑这样做是否可以按预期进行。