在我看来Assert.Pass(" Some Message")如果我把它放在一个测试方法中就什么都不做:
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;
它不会打印到测试控制台......我们使用此功能的任何场景?
答案 0 :(得分:4)
通常在测试中,您要声明某些内容具有预期值。然而,有时你只是想确保某些事情不会爆炸(即没有例外)。
由于诸如DUnit或DUnitX之类的框架检测到空测试(没有执行任何断言的测试),您需要告诉框架测试不是空的(尽管您可以执行虚拟断言)。这通常是在您使用Assert.Pass时。它还允许您提前退出测试(如果有任何情况)。
因此,在您调用Assert.AreEqual
的情况下,您不需要Assert.Pass
。