这是一个登录系统的示例代码
@BeforeClass
public void verifyLogin()
{
loginObject.enterUsername("admin");
loginObject.enterPassword("!212313132");
loginObject.clickOnsignIn();
Assert.assertTrue(homeObject.isLoggedIn());
}
答案 0 :(得分:0)
更多的是关于意见。
您正在@BeforeClass
中进行登录,必须通过执行此Assert.assertTrue(homeObject.isLoggedIn());
来验证您正确执行的操作。
因为如果登录失败,您可能不想继续测试。
请注意,与@BeforeTest
相比,@BeforeClass
是 TestNG 中较大的单位。
我个人在@BeforeMethod
中编写登录方法,然后在类中编写所有@Test
方法。
@BeforeClass
是 setupClass ,您可能希望在其中声明先决条件,例如驱动程序初始化和所有。
所以提出问题,我们应该断言,良好做法。
无论何时需要验证,我们都必须断言。就这么简单。
答案 1 :(得分:0)
Selenium的常见设计模式是Give-When-Then design。
看起来您所描述的测试包含'给定用户X已登录'因此'当...'和'然后..'。因此,登录用户是测试的前提条件,断言它是很有意义的。
但是,这不是强制性的。如果在登录页面中未找到WebElement,您可以使'homeObject.isLoggedIn()'方法抛出LoginException。通过这种方式,您将能够创建一个负面测试(例如,错误的密码),它将使用完全相同的代码并期望LoginException。