delphi – 如何使用DUnit测试私有方法?

前端之家收集整理的这篇文章主要介绍了delphi – 如何使用DUnit测试私有方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个类,我单位测试与DUnit.
它有一些方法的一些公共方法和私有方法.
type
  TAuth = class(TDataModule)
  private
    procedure PrivateMethod;
  public
    procedure PublicMethod;
  end;

为了写这个类的单元测试,我必须使所有的方法公开.

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

解决方法

你不需要让它们公开.受保护的会做.然后,您可以对类进行单元测试的子类型,并表示受保护的方法.例:
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;

然而,如果要单元测试的方法是与数据模块密切相关的事情,除了是私有的,它们是不安全的,那么您应该真正考虑重构方法,以便将需要单元的代码隔离测试和访问数据模块内部的代码.

猜你在找的Delphi相关文章