Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Влад1986
1 / 1 / 0
Регистрация: 01.02.2014
Сообщений: 8
#1

Тестирование класса - C++

13.02.2014, 22:45. Просмотров 627. Ответов 5
Метки нет (Все метки)

Добрый вечер.
Создал класс для работы со строкам. Нужно его протестировать. В теории понимаю, что самый идеальный тест - это программа, которая считывает строки из одного файла и записывает в другой. Но как программно это реализовать не могу понять. Литературы толковой тоже не нашел. Помогите, пожалуйста.
Описание класса:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#ifndef BUFSTR_H
#define BUFSTR_H
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
 
class BufStr
{
    char* str;      // переменная
    
    public:
        BufStr(char* str1);
        BufStr();
        ~BufStr (){if (str !=0) {
            delete[] str;
        }
    };
    void setstr(char* str1);                // назначаем строку переменной 
        void setstr(BufStr *strbuf1);           // --//--
        char* getstr();                         // возвращает переменную
        void loadfromfile(char* filename);      // загрузка в переменную из файла
        void savetofile(char* filename);
//  protected:
};
 
#endif
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2014, 22:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Тестирование класса (C++):

Тестирование класса - C++
На этом форуме можно протестировать свой класс? Написал класс для умного указателя, но в нем могут быть какие-нибудь недочеты или ошибки. Я...

Определение и тестирование класса - C++
Доброго времени суток ! Ребят ,только учусь так что не судите строго)) Учусь по книге &quot;Харви М.Дейтел и Пол.Дж.Дейтел - Как...

Тестирование - C++
В литературе по программированию большинство (если не все) авторов указывают на важность проведения тестирования. Описывается много методик...

Проверка создания объекта класса BBB из класса AAA и работа с ним - C++
#define @param2; // объявили для выяснения случая: нужен новый или использовать существующий. Class AAA { private: void...

Создать для класса виртуальный метод, возвращающий уникальный идентификатор класса - C++
В курсаче по ООП сказано создать для класса виртуальный метод,возвращающий уникальный идентификатор класса. Вопрос в том, что это такое?

Как обраиться к функции класса через другую функцию класса (друга)? - C++
Пример кода: #include &lt;iostream&gt; using namespace std; class Sasha; class Petya { public: friend class Sasha; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
RazrFalcon
1379 / 1236 / 262
Регистрация: 10.11.2013
Сообщений: 3,763
13.02.2014, 22:57 #2
Создаете еще одно приложение. В него инклудите ваш класс и начинаете вызывать методы этого класса со всякими левыми значениями. Вот и самое простое тестирование.

То есть заранее подготавливаете список входных и выходных данный, и проверяете что бы все пары обработались верно.
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
13.02.2014, 23:04 #3
не много не по теме:
вы зачем себе такой класс написали? чтобы поупражняться в написании подобных вещей или
чтобы облегчить работу со строками в других местах проекта/программы/... ?
Влад1986
1 / 1 / 0
Регистрация: 01.02.2014
Сообщений: 8
13.02.2014, 23:21  [ТС] #4
вы зачем себе такой класс написали?
Чтобы просто поупражняться)
Stella
75 / 75 / 5
Регистрация: 26.02.2013
Сообщений: 224
14.02.2014, 00:13 #5
Цитата Сообщение от Влад1986 Посмотреть сообщение
Но как программно это реализовать не могу понять.
Есть уже написаные библиотеки для тестирования. Например Boost::Test, CppUnit, CxxTest.
На С# там в студии есть встроенные инструменты для тестирования.

Ну а самый простой способ - RazrFalcon, прав: создать объект класса и брать и вызывать методы с разными значениями.
DU
1483 / 1059 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
14.02.2014, 00:14 #6
если упрощенно, то в таких случаях вызывают какие-то методы а потом проверяют что они отработали
как ожидалось. это ожидание тоже кодируется. есть всякие спец либы для этого дела.
вот простой вариант на коленке чтобы было понятно:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <iostream>
#include <string>
#include <cassert>
 
class SuperClass
{
  int m_value;
public:
  explicit SuperClass(int value = 0)
    : m_value(value)
  {
  }
 
  int GetValue() const
  {
    return m_value;
  }
 
  void SetValue(int value)
  {
    m_value = value;
  }
 
  void AddValue(int value)
  {
    m_value += value + 1;
  }
};
 
int main()
{
  SuperClass superClass(666);
  assert(superClass.GetValue() == 666 && "superClass.GetValue() == 666");
 
  superClass.SetValue(777);
  assert(superClass.GetValue() == 777 && "superClass.GetValue() == 777");
 
  superClass.SetValue(0);
  superClass.AddValue(5);
  assert(superClass.GetValue() == 0 + 5 && "superClass.GetValue() == 0 + 5");
 
  return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.02.2014, 00:14
Привет! Вот еще темы с ответами:

внук родительского класса не может работать с полями дедовского класса; почему? - C++
Не всё так просто на самом деле. Непонятно, какую роль во всём этом играют шаблоны. Но к делу. Вот код: class base { public: base...

Как получить доступ к методам класса, который содержится в векторе класса - C++
Пишу дерево с любым количеством наследников. В классе Thread содержится вектор классов Thread. При попытке просмотра первого элемента в...

Объявление объекта класса fstream в качестве статической компоненты другого класса - C++
Доброго времени суток. Есть задание, в котором говорится &quot;...Перепишите программы из упражнений 4 и 6 таким образом, чтобы использовать...

Приём константных векторов класса, как аргументов в методе другого класса - C++
Есть такой класс: class Order { private: int numberOrder; map &lt;string, int&gt; catalogDish; double totalCost; public: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
14.02.2014, 00:14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru