我有以下界面和类
interface
....
MyInterface = interface
['{079729DE-3E8C-4C1B-80AD-114F0A4CD04A}']
function MyFunction : integer;
procedure MyProcedure;
end;
TMyClass = class (TInterfacedObject, MyInterface)
private
FMyValue : integer;
public
function MyFunction : integer;
procedure MyProcedure;
end;
implementation
.....
function TMyClass.MyFunction: integer;
var
aResult : integer;
begin
{ here the value of AResult is changed}
result := aResult;
end;
procedure TMyClass.MyProcedure;
var
aValue : integer;
begin
{ here the value of FMyValue is changed}
{ here the value of aValue is changed}
end;
我可以通过支票(MyFunction
)轻松查看MyFunction=...
的结果,但我不知道如何在最后检查FMyValye
和aValue
的值程序。
我宁愿避免在接口和类中添加额外的函数,它会检索FMyValue
和aValue
的值,因为它仅用于测试而不用于生产。
答案 0 :(得分:1)
您不想检查私有成员和本地变量的值。它们不是外部可见界面的一部分,因此它们的价值无关紧要。
如果您担心这些值,那么您的代码架构设计不正确。适当的解决方案当然是重新设计代码。
当然,您可以将私有字段设为public,也可以通过out参数返回本地变量。但你不想这样做,是吗?
答案 1 :(得分:0)
为了能够在不添加getter的情况下测试FMyValue
,您可以将其设为受保护而非私有。
在测试中,您可以添加一个可以访问此值的派生类,以便您进行检查。