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; 然而,如果要单元测试的方法是与数据模块密切相关的事情,除了是私有的,它们是不安全的,那么您应该真正考虑重构方法,以便将需要单元的代码隔离测试和访问数据模块内部的代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |