Я пишу тестовый пример с использованием блока fpc в lazarus, проводя некоторое исследование того, как ведет себя TDateTime.FailNotEquals ожидает, что AnsiString как второй параметр
Теперь вопрос заключается в том, почему аналог 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;
тест
Вы понимаете сообщение об ошибке? Что такое подпись функции? Что говорят документы? –
FWIW, мне интересно, что такое FailNotEquals. Похоже, это похоже на AssertEquals. Вы хотите AssertNotEqual, если он существует, и я подозреваю, что это не так. Утверждения в fpcunit кажутся ограниченными. –
Нет, нет AssertNotEqual, есть ли тестовая структура, которая должна использоваться вместо fpcunit? –