• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

GTest - zmiana wartości testu parametrycznego

VPS Starter Arubacloud
0 głosów
189 wizyt
pytanie zadane 26 września 2019 w C i C++ przez Szahid Pasjonat (20,930 p.)

WItam

Błąd pojawia się w lini 36 gdy próbuję zmienić parametry testu, aby przetestować koleiną funkcję. Jest to błąd powtórnej definicji. Czy ktoś wie jak mogę osiągnąć mój cel?

Chcialbym w miare możliwosci  nie tworzyć koleinej struktury dziedziczacej po ::testing::TestWithParam<val>

tylko wykorystać ta istniejącą

Kod testu

#include<gtest/gtest.h>
#include"../strMod/strMod.h"
#include<memory>


using  namespace std;

typedef  std::pair<string,string> val;


struct strModTest : public ::testing::TestWithParam<val>
{
    unique_ptr<strMod> m_strMod = make_unique<strMod>();

    void SetUp()
    {
        
    }
};

INSTANTIATE_TEST_CASE_P(default,strModTest,testing::Values(
    val("kot","tok"),
    val("",""),
    val("kamil","limak"),
    val(" Adam","madA "),
    val("  2spacje3spacje   ","   ejcaps3ejcaps2  ")
    ));


TEST_P(strModTest,reverse_string)
{
    EXPECT_EQ(m_strMod->reverse(GetParam().first),GetParam().second);
}

// CHCIAŁBYM USTAWIĆ NOWE WARTOŚCI DLA KOLEINEGO TESTU
INSTANTIATE_TEST_CASE_P(default,strModTest,testing::Values(
    val("kot","tvok")
    ));

TEST_P(strModTest,palindrom)
{
    EXPECT_NE(m_strMod->reverse(GetParam().first),GetParam().second);
}

 

komentarz 26 września 2019 przez tkz Nałogowiec (42,000 p.)
Fajnie jakbyś podał nazwę tego błędu...
komentarz 26 września 2019 przez Szahid Pasjonat (20,930 p.)

Podałem. Błąd powtórnej definicji. Poniżej wklejam Ci w języku angielskim

redefinition of ‘testing::internal::ParamGenerator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > > gtest_defaultstrModTest_EvalGenerator_()’

 

komentarz 26 września 2019 przez niezalogowany
edycja 28 września 2019
z shared_ptr to samo? Też jestem ciekawy czy można przestawić unique bez new?

Edit :: sorki że z ten durny komentarz (jest make).
komentarz 27 września 2019 przez tkz Nałogowiec (42,000 p.)
Pierwsze słowo, ponownie coś definiujesz, spójrz na kod jeszcze raz.

dokładnie to  testing::internal::ParamGenerator<std::pair<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> > >
komentarz 28 września 2019 przez Szahid Pasjonat (20,930 p.)
@fisker nie rozmiem co masz ja myśli

@tkz wiem o tym. Pytam jak tego uniknąć ( powtórna definicja jest w lini 36)
komentarz 28 września 2019 przez tkz Nałogowiec (42,000 p.)
Nie wiem czy tak się da, ale z tego co widzę nikt tak nie robi, więc myślę, że jest to bez sensu, albo niemożliwe.
komentarz 28 września 2019 przez Szahid Pasjonat (20,930 p.)
To jak się testuje różne funkcje danej klasy? Chodzi mi o testowanie parametryczne. Niestety nie znalazłem żadnych przykładów na Internecie
komentarz 28 września 2019 przez tkz Nałogowiec (42,000 p.)
komentarz 28 września 2019 przez Szahid Pasjonat (20,930 p.)
Chyba nie dokonca sie zrozumiliśmy. W przytoczonym przez Ciebie artykule nie ma nic o tym zagadnieniu

1 odpowiedź

0 głosów
odpowiedź 28 września 2019 przez Szahid Pasjonat (20,930 p.)
bump

Podobne pytania

0 głosów
0 odpowiedzi 215 wizyt
pytanie zadane 17 maja 2018 w C i C++ przez Dregon Początkujący (250 p.)
–1 głos
0 odpowiedzi 255 wizyt
0 głosów
1 odpowiedź 221 wizyt

92,455 zapytań

141,263 odpowiedzi

319,100 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...