根據我下面的代碼。我正在測驗 UI,以確保將應用程式的正確權限應用于某些用戶帳戶。
當我運行下面的命令時,測驗在“Assert.Pass(); //marks as a pass here ok”處通過。在此之后,代碼進入 catch 塊。
例外訊息實際上是空白的,堆疊跟蹤是:
在 NUnit.Framework.Assert.Pass(String message, Object[] args) 在 NUnit.Framework.Assert.Pass() 在 SigangeCoreUiTests.Tests.PermissionTests.BslUserPermissionTest() 在 C:...\PermissionTests.cs:line 90
由于斷言失敗,測驗顯然失敗了,但是沒有理由引發例外并且它已經通過。螢屏截圖沒有引起問題,它似乎是 Assert.Pass。
為什么我的代碼會這樣做?
public void BslUserPermissionTest()
{
var _testUsername = _configuration.GetValue<string>("PermissionsTestUserList:BSLUser:Username");
var _testPassword = _configuration.GetValue<string>("PermissionsTestUserList:BSLUser:Password");
var wait = new WebDriverWait(_driver, new TimeSpan(0, 0, 60));
try
{
if (!LoginHandler(_testUsername, _testPassword))
{
Assert.Fail();
}
System.Threading.Thread.Sleep(2000);
var menuItem = wait.Until(ExpectedConditions.ElementIsVisible(By.LinkText("BSL Interpreter")));
menuItem.Click();
var result = wait.Until(ExpectedConditions.ElementIsVisible(By.TagName("app-bsl-interpreter")));
if (result.Text.Contains("Message for Interpretation"))
{
//test no other menu items are present - only expecting the one menu item
if (ValidateSingleMenuItemPresent())
{
new SupportClasses.ScreenShot().Take(_driver, false);
Assert.Fail();
}
new SupportClasses.ScreenShot().Take(_driver, true);
Assert.Pass(); //marks as a pass here ok
}
else
{
new SupportClasses.ScreenShot().Take(_driver, false);
Assert.Fail();
}
}
catch (Exception ex) //raises exception for unknown reason
{
new SupportClasses.ScreenShot().Take(_driver, false);
Assert.Fail();
}
finally
{
_driver = new SupportClasses.SsdAuthentiation(_driver).Logout();
}
}
uj5u.com熱心網友回復:
Assert.Pass 拋出例外,您應該使用 Assert 根據您的測驗用例檢查值。
請參閱以下來自GitHub 的代碼。
/// <summary>
/// Throws a <see cref="SuccessException"/> with the message and arguments
/// that are passed in. This allows a test to be cut short, with a result
/// of success returned to NUnit.
/// </summary>
[DoesNotReturn]
static public void Pass()
{
Assert.Pass(string.Empty, null);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/315539.html
