加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 10:05:43 所属栏目:大数据 来源:网络整理
导读:我有一个类,我单位测试与DUnit. 它有一些方法的一些公共方法和私有方法. type TAuth = class(TDataModule) private procedure PrivateMethod; public procedure PublicMethod; end; 为了写这个类的单元测试,我必须使所有的方法公开. 是否有不同的方法来声明
我有一个类,我单位测试与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;

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读