我的代码有问题,它使用泛型类型.为什么编译器不知道传递的list(Result)是一个TObjectList<TItem>(TItem是Tin的类型TItems)?
接口:
type
TItem = class
end;
type
IItemsLoader = interface
procedure LoadAll(AList : TObjectList<TItem>);
end;
type
TItemsLoader = class(TInterfacedObject, IItemsLoader)
public
procedure LoadAll(AList : TObjectList<TItem>);
end;
type
IItems<T : TItem> = interface
function LoadAll : TObjectList<T>;
end;
type
TItems<T : TItem> = class(TInterfacedObject, IItems<T>)
private
FItemsLoader : TItemsLoader;
public
constructor Create;
destructor Destroy; override;
function LoadAll : TObjectList<T>;
end;
Run Code Online (Sandbox Code Playgroud)
执行:
procedure TItemsLoader.LoadAll(AList: TObjectList<TItem>);
begin
/// some stuff with AList …Run Code Online (Sandbox Code Playgroud) 首先,我想说 - 我是用PHP(phpunit)进行单元测试的新手.在我的新项目(slim3框架)中,我想测试我的控制器,例如LoginController.
我的想法是(在单元测试方法中)
LoginController__invoke)我的问题是关于__invoke方法的参数.在Slim3中,可调用的请求方法有两个第一个参数:
RequestInterface $request 和 ResponseInterface $response
如何在单元测试类中创建此参数?我正在寻找这个问题的一些例子,但没有成功.
有什么建议?
我在Slim3测试中发现了一些模拟请求的代码:
protected function requestFactory()
{
$uri = Uri::createFromString('https://example.com:443/foo/bar?abc=123');
$headers = new Headers();
$cookies = array(
'user' => 'john',
'id' => '123',
);
$env = Slim\Http\Environment::mock();
$serverParams = $env->all();
$body = new Body(fopen('php://temp', 'r+'));
$request = new Request('GET', $uri, $headers, $cookies, $serverParams, $body);
return $request;
}
Run Code Online (Sandbox Code Playgroud)
但我不确定这是好方法.
谢谢你的帮助
是否可以像显示首选项一样获得分辨率列表?见附图.我正在使用Delphi XE3
我可以枚举DeviceModeList(来源:http://www.delphifeeds.com/go/s/96231)
var
cnt : Integer;
DevMode : TDevMode;
begin
cnt := 0;
while EnumDisplaySettings(nil,cnt,DevMode) do
begin
with Devmode do
ListBox1.Items.Add(Format('%dx%d %d Colors', [dmPelsWidth,dmPelsHeight,Int64(1) shl dmBitsperPel])) ;
Inc(cnt) ;
end;
end;
Run Code Online (Sandbox Code Playgroud)
第一个问题:
有结果我无法使用Windows显示首选项设置.当然我可以减少<800x600 - 但这是一个糟糕的主意:)
下一个问题:
没有关于分辨率是否显示为灰色的信息(如显示首选项)
在解决这两个问题时,我将不胜感激.
最好的祝福!