Test Düzenekleri ve Kurulum
Test kurulumunu paylaşın
Test Düzenekleri ve Kurulum, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.
Sınamalar Arasında Kurulumu Paylaşma
Birden fazla sınama aynı nesnelere ihtiyaç duyduğunda, bir sınama düzeneği bu kurulumu bir kez tanımlamanızı sağlar. Sınama düzeneği, ::testing::Test sınıfından türetilen bir sınıftır.
Bir Sınama Düzeneği Tanımlama
Sınama düzeneğinin üyelerine, onu kullanan her sınamadan erişilebilir. SetUp() her sınamadan önce, TearDown() ise sonra çalışır.
#include <gtest/gtest.h>
#include <vector>
class VectorTest : public ::testing::Test {
protected:
std::vector<int> v;
void SetUp() override { v = {1, 2, 3}; }
};TEST_F Kullanımı
Bir sınama düzeneği kullanan sınamalar, ilk bağımsız değişken olarak düzenek sınıfının adını alan TEST_F ile yazılır.
#include <gtest/gtest.h>
#include <vector>
class VectorTest : public ::testing::Test {
protected:
std::vector<int> v{1, 2, 3};
};
TEST_F(VectorTest, HasThree) {
EXPECT_EQ(v.size(), 3u);
}
TEST_F(VectorTest, FirstIsOne) {
EXPECT_EQ(v.front(), 1);
}Her Sınama için Yeni Örnek
GTest, her sınama için yeni bir sınama düzeneği nesnesi oluşturur. Sınamalar değiştirilebilir durumu hiçbir zaman paylaşmadığından bağımsız kalır ve sıra önem taşımaz.
SetUp ve Yapıcı Karşılaştırması
Üyeleri yapıcıda veya SetUp() içinde başlatabilirsiniz. Başlatma özel durum fırlatabiliyorsa ya da sanal yöntemleri güvenle çağırmak istiyorsanız SetUp() kullanın.
#include <gtest/gtest.h>
class Resource : public ::testing::Test {
protected:
int* data = nullptr;
void SetUp() override { data = new int(10); }
void TearDown() override { delete data; }
};
TEST_F(Resource, HasTen) {
EXPECT_EQ(*data, 10);
}Temizleme için TearDown
TearDown(), SetUp() içinde edinilen kaynakları serbest bırakır. RAII üyelerinde yıkıcı bunu çoğu zaman otomatik olarak yönetir ve hiç TearDown() kullanmanız gerekmeyebilir.
Paket Düzeyinde Kurulum
Pahalı paylaşılan kaynaklar için statik SetUpTestSuite() ve TearDownTestSuite() kullanın. Bunlar sınama başına değil, paket başına bir kez çalışır.
#include <gtest/gtest.h>
class DbTest : public ::testing::Test {
protected:
static void SetUpTestSuite() { /* open shared connection */ }
static void TearDownTestSuite() { /* close it */ }
};Sınama Başına ve Paket Başına
Dikkatle seçin.
SetUp/TearDown: sınama başına, yalıtılmış, güvenliSetUpTestSuite/TearDownTestSuite: paket başına, paylaşılan, daha hızlı ancak sınamalar birbirini etkileyebilir
Yardımcı Yöntemler
Sınama düzenekleri, birden fazla sınama tarafından kullanılan yardımcı yöntemleri barındırabilir; böylece her sınama doğrulamalarına odaklanır.
#include <gtest/gtest.h>
#include <string>
class ParserTest : public ::testing::Test {
protected:
int parse(const std::string& s) { return std::stoi(s); }
};
TEST_F(ParserTest, ParsesNumber) {
EXPECT_EQ(parse("42"), 42);
}Genel Ortam
İşlem genelinde kurulum için (herhangi bir sınamadan önce bir kez çalıştırmak üzere) bir ::testing::Environment ortamını AddGlobalTestEnvironment aracılığıyla kaydedin. Günlükleme veya çatı başlatma için yararlıdır.
Sınamaları Bağımsız Tutma
Her TEST_F yeni bir sınama düzeneği aldığından başka bir sınamanın yan etkilerine hiçbir zaman güvenmeyin. Bağımsızlık, başarısızlıkların tanılanmasını kolaylaştırır ve sınamaları paralel çalıştırmayı güvenli kılar.
Hızlı Kontrol
Sınama düzeneğinin yaşam döngüsünü hatırlayın.
Özet
Sınama düzeneklerini öğrendiniz.
::testing::Testsınıfından türeyin veTEST_FkullanınSetUp/TearDownsınama başına çalışır; her seferinde yeni bir nesne oluşturulur- Paylaşılan ve paket başına bir kez kullanılan kaynaklar için
SetUpTestSuite - Yardımcılar ve genel ortamlar büyük sınama paketlerine katkı sağlar
Sıkça Sorulan Sorular
“Test Düzenekleri ve Kurulum” dersi ücretsiz mi?
Evet — “Test Düzenekleri ve Kurulum” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.
“Test Düzenekleri ve Kurulum” dersinde ne öğreneceğim?
Test kurulumunu paylaşın C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C++ Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Test Düzenekleri ve Kurulum” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- GTest Kurulumu
- Doğrulamalar ve Eşleştiriciler
- Test Düzenekleri ve Kurulum
- GMock ile Taklitler