3

It looks to me Assert.Pass("Some Message") does not do anything if I just put it in a test method:

procedure TRPMTestObject.TestPlatform;
begin
{$IFDEF WIN64}
  Assert.AreEqual(8, SizeOf(Pointer));
  Assert.Pass('WIN64 Defined');
{$ENDIF}
{$IFDEF WIN32}
  Assert.AreEqual(4, SizeOf(Pointer));
  Assert.Pass('WIN32 Defined');
{$ENDIF}
end;

It does not print to the test console... Any scenarios that we use this function?

4

1 回答 1

4

通常在测试中,您想要断言某事具有预期值。然而,有时你只是想确保某些东西不会爆炸(即没有引发异常)。

由于诸如 DUnit 或 DUnitX 之类的框架可以检测空测试(未执行任何断言的测试),因此您需要告诉框架该测试不是空的(尽管您可以执行虚拟断言)。这通常是在您使用 Assert.Pass 时。它还允许您提前离开测试(如果有任何情况)。

因此,在您调用的情况下,您Assert.AreEqual不需要Assert.Pass.

于 2017-02-06T16:56:43.463 回答