我们什么时候在 DUnitX 中使用 Assert.Pass()?
When do we use Assert.Pass() in DUnitX?
在我看来 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;
它不会打印到测试控制台...我们使用此功能的任何场景?
通常在测试中您想要断言某些东西具有预期值。然而,有时您只是想确保某些东西不会爆炸(即没有引发异常)。
由于 DUnit 或 DUnitX 等框架可以检测空测试(未执行任何断言的测试),因此您需要告诉框架该测试不为空(尽管您可以执行虚拟断言)。这通常是您使用 Assert.Pass 时的情况。它还允许您提前离开测试(如果有任何情况)。
所以在你调用 Assert.AreEqual
的情况下,你不需要 Assert.Pass
.
在我看来 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;
它不会打印到测试控制台...我们使用此功能的任何场景?
通常在测试中您想要断言某些东西具有预期值。然而,有时您只是想确保某些东西不会爆炸(即没有引发异常)。
由于 DUnit 或 DUnitX 等框架可以检测空测试(未执行任何断言的测试),因此您需要告诉框架该测试不为空(尽管您可以执行虚拟断言)。这通常是您使用 Assert.Pass 时的情况。它还允许您提前离开测试(如果有任何情况)。
所以在你调用 Assert.AreEqual
的情况下,你不需要 Assert.Pass
.