diff --git a/UltiSnips/cpp_googletest.snippets b/UltiSnips/cpp_googletest.snippets
index b44f91b..c4573be 100644
--- a/UltiSnips/cpp_googletest.snippets
+++ b/UltiSnips/cpp_googletest.snippets
@@ -1,15 +1,228 @@
+snippet gtest "Google Test main function"
+int main(int argc, char **argv) {
+	::testing::InitGoogleTest(&argc, argv);
+	return RUN_ALL_TESTS();
+}
+endsnippet
 snippet TEST "Google Test TEST" b
-TEST(${1:group}, ${2:name}) {
+TEST(${1:test_case_name}, ${2:test_name}) {
 	$0
 }
 endsnippet
 
+snippet fixture "Google Test fixture class"
+class ${1:test_case_name} : public ${2:::testing::Test} {
+ protected:
+	virtual void SetUp() override {
+	}
+
+	virtual void TearDown() override {
+	}
+
+	$0
+};
+endsnippet
 snippet TEST_F "Google Test TEST_F" b
-TEST_F(${1:fixture}, ${2:name}) {
+TEST_F(${1:test_case_name}, ${2:test_name}) {
 	$0
 }
 endsnippet
 
 snippet ASSERT_EQ "Google Test ASSERT_EQ"
-ASSERT_EQ(${1:expected}, ${2:actual});
+ASSERT_EQ($1, $2);
+endsnippet
+snippet EXPECT_EQ "Google Test EXPECT_EQ"
+EXPECT_EQ($1, $2);
+endsnippet
+
+snippet ASSERT_NE "Google Test ASSERT_NE"
+ASSERT_NE($1, $2);
+endsnippet
+snippet EXPECT_NE "Google Test EXPECT_NE"
+EXPECT_NE($1, $2);
+endsnippet
+
+snippet ASSERT_LT "Google Test ASSERT_LT"
+ASSERT_LT($1, $2);
+endsnippet
+snippet EXPECT_LT "Google Test EXPECT_LT"
+EXPECT_LT($1, $2);
+endsnippet
+
+snippet ASSERT_LE "Goolge Test ASSERT_LE"
+ASSERT_LE($1, $2);
+endsnippet
+snippet EXPECT_LE "Goolge Test EXPECT_LE"
+EXPECT_LE($1, $2);
+endsnippet
+
+snippet ASSERT_GT "Google Test ASSERT_GT"
+ASSERT_GT($1, $2);
+endsnippet
+snippet EXPECT_GT "Google Test EXPECT_GT"
+EXPECT_GT($1, $2);
+endsnippet
+
+snippet ASSERT_GE "Google Test ASSERT_GE"
+ASSERT_GE($1, $2);
+endsnippet
+snippet EXPECT_GE "Google Test EXPECT_GE"
+EXPECT_GE($1, $2);
+endsnippet
+
+snippet ASSERT_STREQ "Google Test ASSERT_STREQ"
+ASSERT_STREQ($1, $2);
+endsnippet
+snippet EXPECT_STREQ "Google Test EXPECT_STREQ"
+EXPECT_STREQ($1, $2);
+endsnippet
+
+snippet ASSERT_STRNE "Google Test ASSERT_STRNE"
+ASSERT_STRNE($1, $2);
+endsnippet
+snippet EXPECT_STRNE "Google Test EXPECT_STRNE"
+EXPECT_STRNE($1, $2);
+endsnippet
+
+snippet ASSERT_STRCASEEQ "Google Test ASSERT_STRCASEEQ"
+ASSERT_STRCASEEQ($1, $2);
+endsnippet
+snippet EXPECT_STRCASEEQ "Google Test EXPECT_STRCASEEQ"
+EXPECT_STRCASEEQ($1, $2);
+endsnippet
+
+snippet ASSERT_STRCASENE "Google Test ASSERT_STRCASENE"
+ASSERT_STRCASENE($1, $2);
+endsnippet
+snippet EXPECT_STRCASENE "Google Test EXPECT_STRCASENE"
+EXPECT_STRCASENE($1, $2);
+endsnippet
+
+snippet ASSERT_TRUE "Google Test ASSERT_TRUE"
+ASSERT_TRUE($1);$0
+endsnippet
+snippet EXPECT_TRUE "Google Test EXPECT_TRUE"
+EXPECT_TRUE($1);$0
+endsnippet
+
+snippet ASSERT_FALSE "Google Test ASSERT_FALSE"
+ASSERT_FALSE($1);$0
+endsnippet
+snippet EXPECT_FALSE "Google Test EXPECT_FALSE"
+EXPECT_FALSE($1);$0
+endsnippet
+
+snippet ASSERT_THROW "Google Test ASSERT_THROW"
+ASSERT_THROW(${1:statement}, ${2:exception_type});
+endsnippet
+snippet EXPECT_THROW "Google Test EXPECT_THROW"
+EXPECT_THROW(${1:statement}, ${2:exception_type});
+endsnippet
+
+snippet ASSERT_ANY_THROW "Google Test ASSERT_ANY_THROW"
+ASSERT_ANY_THROW(${1:statement});
+endsnippet
+snippet EXPECT_ANY_THROW "Google Test EXPECT_ANY_THROW"
+EXPECT_ANY_THROW(${1:statement});
+endsnippet
+
+snippet ASSERT_NO_THROW "Google Test ASSERT_NO_THROW"
+ASSERT_NO_THROW(${1:statement});
+endsnippet
+snippet EXPECT_NO_THROW "Google Test EXPECT_NO_THROW"
+EXPECT_NO_THROW(${1:statement});
+endsnippet
+
+snippet ASSERT_PRED1 "Google Test ASSERT_PRED1"
+ASSERT_PRED1(${1:predicate}, ${2:value});
+endsnippet
+snippet EXPECT_PRED1 "Google Test EXPECT_PRED1"
+EXPECT_PRED1(${1:predicate}, ${2:value});
+endsnippet
+
+snippet ASSERT_PRED2 "Google Test ASSERT_PRED1"
+ASSERT_PRED2(${1:predicate}, ${2:first}, ${3:second});
+endsnippet
+snippet EXPECT_PRED2 "Google Test EXPECT_PRED1"
+EXPECT_PRED2(${1:predicate}, ${2:first}, ${3:second});
+endsnippet
+
+snippet ASSERT_PRED_FORMAT1 "Google Test ASSERT_PRED_FORMAT1"
+ASSERT_PRED_FORMAT1(${1:predicate}, ${2:value});
+endsnippet
+snippet EXPECT_PRED1 "Google Test EXPECT_PRED_FORMAT1"
+EXPECT_PRED_FORMAT1(${1:predicate}, ${2:value});
+endsnippet
+
+snippet ASSERT_PRED_FORMAT2 "Google Test ASSERT_PRED_FORMAT1"
+ASSERT_PRED_FORMAT2(${1:predicate}, ${2:first}, ${3:second});
+endsnippet
+snippet EXPECT_PRED_FORMAT2 "Google Test EXPECT_PRED_FORMAT1"
+EXPECT_PRED_FORMAT2(${1:predicate}, ${2:first}, ${3:second});
+endsnippet
+
+snippet ASSERT_FLOAT_EQ "Google Test ASSERT_FLOAT_EQ"
+ASSERT_FLOAT_EQ(${1:expected}, ${2:actual});
+endsnippet
+snippet EXPECT_FLOAT_EQ "Google Test EXPECT_FLOAT_EQ"
+EXPECT_FLOAT_EQ(${1:expected}, ${2:actual});
+endsnippet
+
+snippet ASSERT_DOUBLE_EQ "Google Test ASSERT_DOUBLE_EQ"
+ASSERT_DOUBLE_EQ(${1:expected}, ${2:actual});
+endsnippet
+snippet EXPECT_DOUBLE_EQ "Google Test EXPECT_DOUBLE_EQ"
+EXPECT_DOUBLE_EQ(${1:expected}, ${2:actual});
+endsnippet
+
+snippet ASSERT_NEAR "Google Test ASSERT_NEAR"
+ASSERT_NEAR(${1:value1}, ${2:value2}, ${3:abs_error});
+endsnippet
+snippet EXPECT_NEAR "Google Test EXPECT_NEAR"
+EXPECT_NEAR(${1:value1}, ${2:value2}, ${3:abs_error});
+endsnippet
+
+snippet ASSERT_DEATH "Google Test ASSERT_DEATH"
+ASSERT_DEATH(${1:statement}, ${2:regex});
+endsnippet
+snippet EXPECT_DEATH "Google Test EXPECT_DEATH"
+EXPECT_DEATH(${1:statement}, ${2:regex});
+endsnippet
+
+snippet ASSERT_DEATH_IF_SUPPORTED "Google Test ASSERT_DEATH_IF_SUPPORTED"
+ASSERT_DEATH_IF_SUPPORTED(${1:statement}, ${2:regex});
+endsnippet
+snippet EXPECT_DEATH_IF_SUPPORTED "Google Test EXPECT_DEATH_IF_SUPPORTED"
+EXPECT_DEATH_IF_SUPPORTED(${1:statement}, ${2:regex});
+endsnippet
+
+snippet ASSERT_EXIT "Google Test ASSERT_EXIT"
+ASSERT_EXIT(${1:statement}, ${2:predicate}, ${3:regex});
+endsnippet
+snippet EXPECT_EXIT "Google Test EXPECT_EXIT"
+EXPECT_EXIT(${1:statement}, ${2:predicate}, ${3:regex});
+endsnippet
+
+snippet SCOPED_TRACE "Google Test SCOPED_TRACE"
+SCOPED_TRACE("${1:message}");
+endsnippet
+
+snippet ASSERT_NO_FATAL_FAILURE "Google Test ASSERT_NO_FATAL_FAILURE"
+ASSERT_NO_FATAL_FAILURE(${1:statement});
+endsnippet
+snippet EXPECT_NO_FATAL_FAILURE "Google Test EXPECT_NO_FATAL_FAILURE"
+EXPECT_NO_FATAL_FAILURE(${1:statement});
+endsnippet
+
+snippet SUCCEED "Google Test SUCCEED"
+SUCCEED();
+endsnippet
+snippet FAIL "Google Test FAIL"
+FAIL();
+endsnippet
+snippet ADD_FAILURE "Google Test ADD_FAILURE"
+ADD_FAILURE();
+endsnippet
+snippet ADD_FAILURE_AT "Google test ADD_FAILURE_AT"
+ADD_FAILURE_AT("${1:file_path}", ${2:line_number});
 endsnippet