如果不满足测试的先决条件,则抛出异常或Assert.Fail

时间:2012-03-22 11:47:09

标签: testing exception-handling selenium nunit automated-tests

我有一些运行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()?我是以错误的方式思考这个问题,还是无关紧要真的

1 个答案:

答案 0 :(得分:0)

抛出异常的原因 - 您可以稍后捕获并尝试使用其他用户。

asserrt失败的原因 - 当找不到用户时,它意味着结束了testmodel。

如果你采用例外方式 - 如果找不到合适的用户,请考虑GetUserByEmailAddress会抛出它......