Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 03.01.2019
Сообщений: 17
1

Написать мини Unit Test к программе

04.04.2019, 23:42. Просмотров 1132. Ответов 3
Метки нет (Все метки)

Не удается написать юнит тест без ошибок. Помогите написать хотя бы самый простой юнит тест. Кидаю код самого простого класса (но если что можно и на другом примере):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class MyClass
{
public:
    MyClass();
    ~MyClass();
    int val1;
    int val2;
    int foo(int a, int b);
};
 
int MyClass::foo(int a, int b)
{
    return a + b;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.04.2019, 23:42
Ответы с готовыми решениями:

Как написать unit test (gtest) для работы с файлом?
Подскажите, пожалуйста, как правильно написать unit test (gtest) для записи в .csv file. А так же...

С++ Unit Test (модульное тестирование)
Вопроса по сути два. 1. что используете для модульного тестирования и почему отдаете этому...

Раздельный native unit test для проекта скомпилированного как Debug и как Release
Используя условную компиляцию версия Debug и Release может существенно различаться. Не все ситуации...

Написать функцию TEST(A,k)
Написать функцию TEST(A,k), принимающую значение True, если се элементы k-й строки четные и...

3
2533 / 1193 / 357
Регистрация: 30.11.2013
Сообщений: 3,817
05.04.2019, 00:31 2
Serg_k_,

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
44
45
#include <iostream>
#include <vector>
#include <string>
#include <cassert>
 
using namespace std;
 
class MyClass
{
public:
    int val1;
    int val2;
    int sum(int a, int b);
};
 
int MyClass::sum(int a, int b)
{
    return a + b;
}
 
 
#define EXPECT_TRUE(exp) do{ if(!exp){ assert(false);} } while(false);
#define EXPECT_FALSE(exp) do{ if(exp){ assert(false);} } while(false);
#define EXPECT_EQUAL(val, expect_value) do{ if(val != expect_value){ assert(false);} } while(false);
 
void TestCase_MyClassSumTests()
{
    MyClass testObj;
    int a = 10;
    int b = 4;
 
    EXPECT_TRUE(testObj.sum(a, b) > a);
    EXPECT_TRUE(testObj.sum(a, b) > b);
    EXPECT_TRUE(testObj.sum(a, b) == 14);
    EXPECT_FALSE(testObj.sum(a, b) == 13);
    EXPECT_EQUAL(testObj.sum(a, b), 14);
    //EXPECT_EQUAL(testObj.sum(a, b), 41);
}
 
 
 
int main()
{
    TestCase_MyClassSumTests();
}
1
3895 / 2117 / 366
Регистрация: 05.10.2013
Сообщений: 6,144
Записей в блоге: 167
05.04.2019, 02:10 3
Лучший ответ Сообщение было отмечено Serg_k_ как решение

Решение

VS2015: MyClass_GTestCpp.zip

MyClassTests.cpp

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
#include <gtest/gtest.h>
#include "MyClass.h"
 
TEST(MyClass, Foo_SumOfOneAndOne_ReturnsTwo)
{
    // Arrange
    MyClass mc;
 
    // Act
    int actual = mc.Foo(1, 1);
 
    // Assert
    ASSERT_EQ(actual, 2);
}
 
TEST(MyClass, Foo_SumOfMinusThreeAndTwo_ReturnsTwo)
{
    // Arrange
    MyClass mc;
 
    // Act
    int actual = mc.Foo(-3, 2);
 
    // Assert
    ASSERT_EQ(actual, -1);
}
MyClass.h

C++
1
2
3
4
5
6
7
8
9
#pragma once
 
class MyClass
{
public:
    int val1;
    int val2;
    int Foo(int a, int b);
};
MyClass.cpp

C++
1
2
3
4
5
6
#include "MyClass.h"
 
int MyClass::Foo(int a, int b)
{
    return a + b;
}
1
3895 / 2117 / 366
Регистрация: 05.10.2013
Сообщений: 6,144
Записей в блоге: 167
05.04.2019, 02:15 4
Написать мини Unit Test к программе
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.04.2019, 02:15

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

C:\Projects\test\test.cpp|6|error: ISO C++ forbids declaration of 'operator++' with no type [-fpermissive]|
class TUID { public: char Data; TUID (); operator ++ (); };

Обращение из Unit Test к функцие в программе
Как обратиться из Unit Test к функцие в программе?

Надо написать 7 unit test проекту пожалуйста
&lt;%@ Page Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot; CodeFile=&quot;single.aspx.cs&quot; Inherits=&quot;single&quot; %&gt; ...

Что такое unit test и regression test
Что такое unit test и regression test?


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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