我有一些运行Selenium的NUnit测试。
某些测试有一些先决条件。这方面的一个例子是登录我们的网站。
我们使用标准测试用户进行测试A,但如果该用户由于某种原因不存在,我们将获得测试失败而没有任何用处(Selenium将报告它无法在第50行找到该元素)。所以我计划在我们尝试运行测试之前检查用户是否存在 - 在TextFixtureSetUp方法中。
我检查以确保用户存在,如果没有,则抛出一条有用的错误消息。 例如:
[TestFixtureSetUp]
public void SetUp()
{
bool userExists = userManager.GetUserByEmailAddress("someuser@fish.com") != null;
if (!userExists)
{
throw new Exception("Test user someuser@fish.com doesn't exist.");
}
}
VS
[TestFixtureSetUp]
public void SetUp()
{
bool userExists = userManager.GetUserByEmailAddress("someuser@fish.com") != null;
if (!userExists)
{
Assert.Fail("Test user someuser@fish.com doesn't exist.");
}
}
我的问题是个好主意?我应该抛出异常还是使用Assert.Fail()?我是以错误的方式思考这个问题,还是无关紧要真的。
答案 0 :(得分:0)
抛出异常的原因 - 您可以稍后捕获并尝试使用其他用户。
asserrt失败的原因 - 当找不到用户时,它意味着结束了testmodel。
如果你采用例外方式 - 如果找不到合适的用户,请考虑GetUserByEmailAddress
会抛出它......