Как инициализировать проверяемый объект для google тестов?
Когда ты хочешь протестировать объект, ты пишешь для него тест.TEST( TestStaticString, GetChar )
{
	using TestString = Black::StaticString<'A', 'B', 'C'>;

	EXPECT_EQ( 'A', TestString::GetChar( 0 ) );
	EXPECT_EQ( 'B', TestString::GetChar( 1 ) );
	EXPECT_EQ( 'C', TestString::GetChar( 2 ) );
}
Слово TEST - это макрос, раскрывающийся в специальную обвязку твоего теста. Его первый параметр - это имя тестового кейса, второй - имя теста.
Инициализацию тестируемого объекта ты делаешь сам.
Проверки теста производятся с помощью макросов EXPECT_* и ASSERT_*.
Expect не останавливает тест в случае провала, а assert - останавливает. Таким образом можно разделять проверки в тесте на критические (после такой ошибки тест незачем продолжать) и обособленные (тест можно продолжать и получить множество обособленных ошибок).
За деталями можно обратиться к примеру из самих гуглотестов.
Твой класс VectorTest - это фикстура тестов. Применять ее к своим тестам ты можешь с помощью макроса TEST_F. Прочитать про это можно тут.
Фикстуры нужны тогда, когда для группы твоих тестов запуск и остановка являются одинаковыми. В этом случае инициализацию и финализацию тестируемого объекта стоит делать в фикстуре.
Тесты своего класса описываешь в TEST_Fclass Filter3pTest : public ::testing::Test
{
	using Filter = MedianFilter<short, 3>;
protected:

	void SetUp() override
	{
		f = new Filter();
		EXPECT_NE(f, nullptr);
	}

	void TearDown() override
	{
		delete f;
	}
protected:
	Filter* f = nullptr;
};

TEST_F(Filter3pTest, Base)
{
	EXPECT_NE(f, nullptr);
	auto v = f->Process(10.);
	EXPECT_DOUBLE_EQ(10.,v);
// ...