gpt4 book ai didi

delphi - 如何使用 DUnit 测试私有(private)方法?

转载 作者:行者123 更新时间:2023-12-03 14:35:22 24 4
gpt4 key购买 nike

我有一个类,正在使用 DUnit 对其进行单元测试。它有许多方法,一些公共(public)方法和私有(private)方法。

type
TAuth = class(TDataModule)
private
procedure PrivateMethod;
public
procedure PublicMethod;
end;

为了为此类编写单元测试,我必须公开所有方法。

是否有不同的方法来声明私有(private)方法,以便我仍然可以测试它们,但它们不是公开的?

最佳答案

您不需要将它们公开。 protected 就可以了。然后,您可以对类进行子类型化以进行单元测试并显示 protected 方法。示例:

type
TAuth = class(TDataModule)
protected
procedure MethodIWantToUnitTest;
public
procedure PublicMethod;
end;

现在您可以为单元测试创​​建子类型:

interface

uses
TestFramework, Classes, AuthDM;

type
// Test methods for class TAuthDM
TestAuthDM = class(TTestCase)
// stuff
end;

TAuthDMTester = class(TAuthDM)
public
procedure MethodIWantToUnitTestMadePublic;
end;

implementation

procedure TAuthDMTester.MethodIWantToUnitTestMadePublic;
begin
MethodIWantToUnitTest;
end;

但是,如果您想要进行单元测试的方法与数据模块的关系如此密切,以至于除了私有(private)之外,其他任何东西都是不安全的,那么您确实应该考虑重构这些方法,以便隔离需要的代码要进行单元测试以及访问数据模块内部的代码。

关于delphi - 如何使用 DUnit 测试私有(private)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/422379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com