如何在Watin集成测试中正确检查服务器错误

时间:2011-06-16 15:32:28

标签: c# integration-testing watin

我正在尝试检测在watin测试期间是否遇到服务器错误。我曾经想过下面的代码可以解决这个问题,但是在使用过程中,我在这行测试执行期间得到一个NRE :( Text.Contains(“Server Error”))。

有关该怎么做的任何建议?某种类型的try catch块似乎不适合在这里做。

感谢。

public class WatinBrowser : IE
{
    public WatinBrowser(string url, bool createInNewProcess) : base(url, createInNewProcess)
    {
    }

    public override void WaitForComplete(int waitForCompleteTimeOut)
    {
        base.WaitForComplete(waitForCompleteTimeOut);
        if (Text.Contains("Server Error"))
        {
            throw new ServerErrorException("A server error occured: " + Text);
        }
    }
}

public class ServerErrorException : Exception
{
    public ServerErrorException(string message): base(message)
    {
    }
}

1 个答案:

答案 0 :(得分:1)

我认为问题在于您要覆盖采用超时参数的版本。这意味着可以在没有加载文档的情况下控制返回代码。

我建议:

  1. 覆盖不采用超时参数的方法版本
  2. 在调用Contains方法之前添加空检查。
  3. (2)的代码示例:

    if(this.Text == null) throw new TimeoutException();
    
    if(this.Text.Contains("Server Error"))
    {
        ...
    }