FailNotEquals期望AnsiString为第二个参数

时间:2015-10-17 13:39:47

标签: freepascal

我正在拉撒路中使用fpc单元编写测试用例,对TDateTime的行为进行一些调查。

现在问题是为什么AssignEquals的对应物,我认为是FailNotEquals不能接受参数为Word,Word可以作为AssignEquals。

这是我的代码:

procedure TTestCase1.Test3;
    var d1, d2: TDateTime;
    var hour1, minute1, second1, ms1: Word;
    var hour2, minute2, second2, ms2: Word;
begin
  d2:=Now;
  Sleep(10);
  d1:=Now;

  DecodeTime(d1, hour1, minute1, second1, ms1);
  DecodeTime(d2, hour2, minute2, second2, ms2);

  //AssertEquals(ms1, ms2); // This test fails as expected
  FailNotEquals(ms1, ms2); // Cant compile, param 2 must be AnsiString

  AssertEquals(d1, d2); // How can this slip through...
end;

测试

1 个答案:

答案 0 :(得分:1)

FailNotEqualsDUnitCompatibleInterface.inc中定义为:

class procedure FailNotEquals(expected, actual: string;
        msg: string = ''; errorAddr: Pointer = nil); virtual;

该方法没有重载,因此只接受字符串参数。