Как правильно проверить наличие ошибок сервера в тесте интеграции Watin - PullRequest
1 голос
/ 16 июня 2011

Я пытаюсь определить, не возникла ли ошибка сервера во время теста watin.Я думал, что приведенный ниже код поможет, однако при использовании я получаю NRE во время выполнения теста в этой строке: (Text.Contains ("Ошибка сервера")).

Есть предложения о том, что здесь делать?Кажется, что-то вроде блока 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 Ответ

1 голос
/ 16 июня 2011

Я думаю, проблема в том, что вы переопределяете версию, которая принимает параметр времени ожидания. Это означает, что возможно возвращение контроля к вашему коду без загрузки документа.

Я рекомендую либо:

  1. Переопределение версии метода, которая не принимает параметр времени ожидания
  2. Добавление нулевой проверки перед вызовом метода Contains.

Пример кода для (2):

if(this.Text == null) throw new TimeoutException();

if(this.Text.Contains("Server Error"))
{
    ...
}
...