FitNesse中的异常处理

时间:2010-06-20 18:46:21

标签: c# .net fitnesse

这是FitNesse初学者的问题,对我来说很陌生。 Gojko Adzic在他的书Test Driven .NET Development with FitNesse中提供了一些关于减少测试代码的基本技巧。有一个名为LogIn的方法,根据用户名和密码,返回玩家的id或在没有这样的注册玩家时抛出异常。这是测试代码的初始版本:

public class CheckLogIn : fit.ColumnFixture
{
    public string username;
    public string password;

    public int LoggedInAsPlayerId()
    {
        try
        {
            SetUpTestEnvironment.playerManager.LogIn(username, password);
            return true;
        }
        catch (Exception)
        {
            return false;
        }
    }
}

然后将其替换为较短的版本:

public class CheckLogIn : fit.ColumnFixture
{
    public string username;
    public string password;

    public int LoggedInAsPlayerId()
    {
        return SetUpTestEnvironment.playerManager.LogIn(username, password);
    }
}

现在,第二个测试还有额外的好处,即验证是否返回了正确的ID,但它不允许您检查系统是否拒绝未知用户/错误密码。 是否有任何特殊值可用于列中以指示异常?或者我是否必须将两个测试结合起来以涵盖所有方案?我记得,虽然在这个时刻含糊不清,有一种处理异常的单元测试模式,但我确定有人已经问过它,所以我不想复制。除非社区对此有所了解,否则请建议测试此类方法的最佳实践。

如果我不清楚:

假设我有一个注册的玩家:john.doe/test123/101(用户名/密码/ ID)。我想要测试系统的两个组合是john.doe/test123/101john.doe/johnny/<WrongUserOrPasswordException>

1 个答案:

答案 0 :(得分:0)

有两个夹具关键字允许检查异常:

  • error - 在测试期间应抛出异常
  • exception - 检查特定异常

这本书的following page实际上已经得到了很好的解释......我不能立即注意到它。也许有人会发现这些信息很有用,所以我不会删除这个问题。