Перейти к содержимому

Фотография

Ошибки при вызове методов из других классов


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 dimbaz

dimbaz

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 18 мая 2011 - 15:02

Использую связку указанную в описании темы, пытаюсь сделать что-нибудь совсем простое для начала, например логин на фейсбук

Класс1 - хардкод действий с локаторами:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Selenium;
using NUnit.Framework;

namespace Facebooktry
{

    public class login
    {
        public ISelenium selenium;

        public void enter(string username, string password)
        {
            selenium.WaitForPageToLoad("30000");
            selenium.Type("email", username);
            selenium.Type("pass", password);
            selenium.Click("css=div.menu_login_container .uiButtonConfirm");
            selenium.WaitForPageToLoad("30000");
        }
    }
}

Класс2 - собственно сам тест:

using System;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading;
using NUnit.Framework;
using Selenium;

namespace Facebooktry
{
    [TestFixture]
    public class Test
    {
        private ISelenium selenium;
        private StringBuilder verificationErrors;


        [SetUp]
        public void SetupTest()
        {
            selenium = new DefaultSelenium("localhost", 4444, "*firefox C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe", "http://www.facebook.com/");
            selenium.Start();
            verificationErrors = new StringBuilder();
        }

        [TearDown]
        public void TeardownTest()
        {
            try
            {
                selenium.Stop();
            }
            catch (Exception)
            {
                // Ignore errors if unable to close the browser
            }
            Assert.AreEqual("", verificationErrors.ToString());
        }

        [Test]
        public void FacebookTest()
        {
            login blah = new login();
            selenium.Open("/");
            blah.enter("мыло", "пароль");
        }
    }
}

Студия настроена на запуск nunita при дебаге, компиляция проходит нормально, при запуске теста nunit выдает ошибку:
Facebooktry.Test.FacebookTest:
System.NullReferenceException : Object reference not set to an instance of an object. ссылаясь на строку blah.enter("мыло", "пароль");

Нашел практически аналогичный тест на http://www.seleniumw...in-selenium-rc/ , но он выдает туже самую ошибку( но в строке login(); ).

Внимание вопрос: что я делаю не так?
  • 0

#2 barancev

barancev

    Администратор

  • Admin
  • PipPipPipPipPipPip
  • 6 872 сообщений
  • ФИО:Алексей Баранцев
  • Город:Россия, Москва


Отправлено 18 мая 2011 - 15:37

А в каком месте у Вас инициализируется поле selenium в объекте blah?
  • 0
Алексей Баранцев
Тренинги для тестировщиков (тестирование производительности, защищенности, тест-дизайн, автоматизация):
Линейка тренингов по Selenium

#3 dimbaz

dimbaz

    Новый участник

  • Members
  • Pip
  • 9 сообщений

Отправлено 18 мая 2011 - 17:34

Возможно не совсем понял вопроса, но насколько я понимаю в классе1 надо прописать
selenium = ...?
...или нет?
  • 0

#4 enki86

enki86

    Постоянный участник

  • Members
  • PipPipPip
  • 231 сообщений


Отправлено 19 мая 2011 - 07:24

selenium.Open("/");
это selenium из Test

selenium = new DefaultSelenium("localhost", 4444, "*firefox C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe", "http://www.facebook.com/");


класс же login имеет свой selenium
public ISelenium selenium;
который пытается использовать метод enter объекта blah
selenium.WaitForPageToLoad("30000");

  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных