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

Техники локализации плавающих дефектов
онлайн, начало 17 августа
Школа для начинающих тестировщиков
онлайн, начало 20 августа
Программирование на Python для тестировщиков
онлайн, начало 14 августа
Тестирование без требований
онлайн, начало 17 августа
Фотография

Получение данных из БД

database selenium rc phpunit

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

#1 Maysenka

Maysenka

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

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

Отправлено 11 сентября 2014 - 04:33

Добрый день. Прошу помощи.

 

Появилась необходимость подключаться к базе данных и получать или проверять данные.

Не очень понимаю как это делать. Про тестирование БД написано, что нужно добавить тестовые данные в БД, но мне это не нужно. Возможно ли просто подключиться и получить данные из базы?

 

Пример. Подключение и что хотелось бы проверить

protected function getConnection()
    {
        $pdo = new PDO('mysql:host=1.1.1.1;port=1111;dbname=name_base', 'TTT', '111');
        return $this->createDefaultDBConnection($pdo, 'name_base');
    }


    public function testPerson ()
    {
        $sql = "SELECT * FROM staffs";
        $statement =
            $this->getConnection()->query($sql);
        $result = $statement->fetchAll();
        $this->assertEquals(1, sizeof($result));
    }

 


  • 0

#2 Master_lomaster

Master_lomaster

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

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

Отправлено 11 сентября 2014 - 06:07

В нашем проекте есть классы для работы с БД, в тестах я пользуюсь ими. Спросите у своих разработчиков.


  • 0

#3 Maysenka

Maysenka

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

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

Отправлено 11 сентября 2014 - 07:01

В нашем проекте есть классы для работы с БД, в тестах я пользуюсь ими. Спросите у своих разработчиков.

 

Тесты находятся в отдельном репозитории, где нет данных классов


  • 0

#4 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 767 сообщений


Отправлено 11 сентября 2014 - 07:07

Этот вопрос оффтопик, здесь обсуждается "Автоматизированное тестирование → Selenium - Functional Testing"


  • 0

#5 Maysenka

Maysenka

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

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

Отправлено 11 сентября 2014 - 07:39

Этот вопрос оффтопик, здесь обсуждается "Автоматизированное тестирование → Selenium - Functional Testing"

 

Я в рамках selenium и хочу получить данные. Ведь использоваться они будут в тестах


  • 0

#6 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 767 сообщений


Отправлено 11 сентября 2014 - 07:47

Тогда так - я могу получить данные (такие-то и такие-то) из БД. Мне надо тут и тут их применить в тестах для проверки, как это лучше сделать? - на такой вопрос вам помогут тут.

а обучать работе с БД - это оффтопик.


  • 0

#7 Master_lomaster

Master_lomaster

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

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

Отправлено 11 сентября 2014 - 07:49

 

Этот вопрос оффтопик, здесь обсуждается "Автоматизированное тестирование → Selenium - Functional Testing"

 

Я в рамках selenium и хочу получить данные. Ведь использоваться они будут в тестах

 

В независимости от того, как вы собираетесь изпользовать данные из БД, этот вопрос о phpunit, а не о selenium.

 

Вы бы хоть написали, какие ошибки возникают, что не получается. Примера из документации недостаточно.


  • 0

#8 Maysenka

Maysenka

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

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

Отправлено 11 сентября 2014 - 08:01

Вот такой пример работает:

<?
require_once 'PHPUnit/Extensions/Database/TestCase.php';

class testMyBase extends PHPUnit_Extensions_Database_TestCase{

    protected function getConnection()
    {
        $pdo = new PDO('mysql:host=1.1.1.1;port=1111;dbname=name_base', 'TTT', '111');
        return $this->createDefaultDBConnection($pdo, 'name_base');
    }

    protected function getDataSet()
    {
        return $this->createFlatXMLDataSet(dirname(__FILE__).'/test.xml');
    }

    public function testPerson ()
    {
        $sql = "SELECT * FROM staffs";
        $statement =
            $this->getConnection()->getConnection()->query($sql);
        $result = $statement->fetchAll(); //данные таблицы, с которыми я потом работаю
        ...
    }
} 

test.xml

<?xml version="1.0" encoding="UTF-8" ?>
<dataset>
    <partner_types
            id="4"
            name="Nadjava"/>
</dataset>

Но в данном примере получается, что таблицу partner_types я наполняю данными из test.xml. Если же опустить функцию getDataSet(), то возникает вот такая ошибка:

Fatal error:  Class testMyBase contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (PHPUnit_Extensions_Database_TestCase::getDataSet) in /vagrant/www/tests/testMyBase.php on line 4

  • 0

#9 wret

wret

    Активный участник

  • Members
  • PipPip
  • 124 сообщений
  • Город:Москва

Отправлено 11 сентября 2014 - 14:15

Вам необходимо объявить все методы абстрактного класса PHPUnit_Extensions_Database_TestCase, в том числе и getDataSet


  • 0

#10 Maysenka

Maysenka

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

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

Отправлено 12 сентября 2014 - 03:46

Вам необходимо объявить все методы абстрактного класса PHPUnit_Extensions_Database_TestCase, в том числе и getDataSet

 

Так вроде так и сделано.

И я не хочу использовать функцию getDataSet. Поскольку она таблицу наполняет своими данными. А мне нужно просто получить дынные из таблицы. Возможно ли это сделать средствами dbunit?


  • 0

#11 wret

wret

    Активный участник

  • Members
  • PipPip
  • 124 сообщений
  • Город:Москва

Отправлено 12 сентября 2014 - 05:00

Вам надо получить данные из таблицы и потом сравнить с ожидаемыми?

Статья http://habrahabr.ru/post/113872/ поможет


  • 0

#12 Maysenka

Maysenka

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

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

Отправлено 12 сентября 2014 - 05:44

Вам надо получить данные из таблицы и потом сравнить с ожидаемыми?

Статья http://habrahabr.ru/post/113872/ поможет

 

Изучала это. Там написано, что

 

 

 

Вы должны реализовать два абстрактных метода — getConnection() и getDataSet(). Первый необходим для установления соединения с базой, второй для заполнения базы таблицами и заполнения собственно таблиц.

 

Вот как раз заполнение мне и не нужно. Возможно ли без него реализовать?


  • 0

#13 GremHD

GremHD

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

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

Отправлено 12 сентября 2014 - 13:02

Нет, если вы наследуетесь от PHPUnit_Extensions_Database_TestCase


  • 0

#14 razielsd

razielsd

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

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


Отправлено 14 сентября 2014 - 20:59

 

В нашем проекте есть классы для работы с БД, в тестах я пользуюсь ими. Спросите у своих разработчиков.

 

Тесты находятся в отдельном репозитории, где нет данных классов

 

PDO - идет в составе PHP, вам ничего не мешает использовать PDO в коде тестов. Если вам нужно просто в рамках селениум-теста посмотреть, что лежит в базе, тогда PHPUnit_Extensions_Database_TestCase вам не нужен.


  • 0

#15 Maysenka

Maysenka

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

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

Отправлено 15 сентября 2014 - 11:55

Всем спасибо. Решено было просто через PDO реализовывать 


  • 0


Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн




Темы с аналогичным тегами database, selenium rc, phpunit

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

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

Яндекс.Метрика
Реклама на портале