pio*_*pio 5 delphi unit-testing
我有以下.dpr
program TPWDDBManager;
{
Delphi DUnit Test Project
-------------------------
This project contains the DUnit test framework and the GUI/Console test runners.
Add "CONSOLE_TESTRUNNER" to the conditional defines entry in the project options
to use the console test runner. Otherwise the GUI test runner will be used by
default.
}
{$IFDEF CONSOLE_TESTRUNNER}
{$APPTYPE CONSOLE}
{$ENDIF}
uses
DUnitTestRunner,
TestuTPWDDBManager in 'TestuTPWDDBManager.pas';
{$R *.RES}
begin
DUnitTestRunner.RunRegisteredTests;
end.
Run Code Online (Sandbox Code Playgroud)
和以下单位:
unit TestuTPWDDBManager;
{
Delphi DUnit Test Case
----------------------
This unit contains a skeleton test case class generated by the Test Case Wizard.
Modify the generated code to correctly setup and call the methods from the unit
being tested.
}
interface
uses TestFramework;
type
// Test methods for class TPWDDBManager
TestTPWDDBManager = class(TTestCase)
strict private
public
procedure SetUp; override;
procedure TearDown; override;
published
procedure TestUpdateVersion;
procedure TestGetPWD;
procedure TestChangePWD;
procedure TestReset;
procedure TestIsReset;
end;
Idlg = interface(IInvokable)
['{E369D075-E3CA-4BB3-896C-0D623DE5798F}']
end;
implementation
uses SysUtils,Delphi.Mocks;
procedure TestTPWDDBManager.SetUp;
var
FMessageDLG : TMock<IDlg>;
begin
end;
procedure TestTPWDDBManager.TearDown;
begin
end;
procedure TestTPWDDBManager.TestGetPWD;
begin
// TODO: Validate method results
end;
procedure TestTPWDDBManager.TestIsReset;
begin
end;
procedure TestTPWDDBManager.TestChangePWD;
begin
end;
procedure TestTPWDDBManager.TestReset;
begin
end;
procedure TestTPWDDBManager.TestUpdateVersion;
begin
end;
initialization
// Register any test cases with the test runner
RegisterTest(TestTPWDDBManager.Suite);
end.
Run Code Online (Sandbox Code Playgroud)
当我编译时,我收到几个警告,例如:
[DCC 警告] W1029 将无法从 C++ 访问具有相同参数的重复构造函数“TExpectation.CreateAfter” [DCC 警告] W1029 将无法从 C++ 访问具有相同参数的重复构造函数“TExpectation.CreateAfterWhen” [DCC 警告] W1029 重复构造函数“TExpectation”。 C++ 将无法访问具有相同参数的 CreateAtLeastOnce'
但如果我删除该行,FMessageDLG : TMock<IDlg>;则警告消失
知道如何解决这个问题吗?
War*_* P 7
Delphi 项目中的 Delphi Mocks 和 C++ 兼容性编译器标志相互不兼容。只需关闭编译器设置中的 C++ 兼容性选项即可。请记住,Delphi 有多种用途。此警告在某些使用场景中有用,但在大多数 delphi 用户的日常工作中却不起作用。您可以禁用该警告。
{$WARN DUPLICATE_CTOR_DTOR OFF}
Run Code Online (Sandbox Code Playgroud)
根据修复需要添加到您的项目 (.dpr) 范围或单元范围。
该警告的意思正如其所言。如果您对 C++ 兼容性不感兴趣,只需禁用该警告即可。其他任何事情都需要更改 TExpectation 的定义,以为其提供参数列表不同而不仅仅是名称不同的构造函数。
| 归档时间: |
|
| 查看次数: |
2282 次 |
| 最近记录: |