diff --git a/tests/Pnpsolver.cpp b/tests/Pnpsolver.cpp index 9e91446..2c70b6a 100644 --- a/tests/Pnpsolver.cpp +++ b/tests/Pnpsolver.cpp @@ -1,26 +1,25 @@ #include #include #include "mocks/MockArmor2D.hpp" -#include "v1/pnpsolver/armor_pnp_solver.hpp" +#include "interfaces/pnp_solver.hpp" #include "parameters/rm_parameters.hpp" #include "mocks/MockHikCameraProfile.hpp" -using world_exe::v1::pnpsolver::ArmorIPPEPnPSolver; +using world_exe::interfaces::IPnpSolver; using world_exe::tests::mock::MockArmorInImage; -using world_exe::parameters::Robomaster; -void RunableTest(world_exe::interfaces::IPnpSolver& pnp_solver) -{ - auto mockarmor = MockArmorInImage::createMockArmorInImage(); - pnp_solver.SolvePnp(mockarmor); -} - -class PnpsolverTest : public ::testing::Test { -protected: - ArmorIPPEPnPSolver pnp_solver; - PnpsolverTest(): pnp_solver( Robomaster::NormalArmorObjectPointsOpencv,Robomaster::LargeArmorObjectPointsOpencv){} +class PnpsolverTest : public ::testing::TestWithParam { +public: + PnpsolverTest() : pnp_solver_test(GetParam()) {} + void RunableTest() + { + auto mockarmor = MockArmorInImage::createMockArmorInImage(); + pnp_solver_test->SolvePnp(mockarmor); + } void RunTest() { - RunableTest(pnp_solver); + RunableTest(); } +private: + IPnpSolver* pnp_solver_test; }; \ No newline at end of file diff --git a/tests/test_main.cpp b/tests/test_main.cpp index 958f001..de2bbfe 100644 --- a/tests/test_main.cpp +++ b/tests/test_main.cpp @@ -1,18 +1,28 @@ #include "Pnpsolver.cpp" +#include "v1/pnpsolver/armor_pnp_solver.hpp" #include #include -using namespace world_exe::interfaces; -using namespace world_exe::data; -using namespace world_exe::enumeration; + +using namespace world_exe::v1::pnpsolver; +using world_exe::parameters::Robomaster; using ::testing::Return; using ::testing::_; -TEST_F(PnpsolverTest,AbilityTest) +TEST_P(PnpsolverTest,AbilityTest) { + ArmorIPPEPnPSolver pnp_solver_test_v1(Robomaster::NormalArmorObjectPointsOpencv,Robomaster::LargeArmorObjectPointsOpencv); RunTest(); + } +INSTANTIATE_TEST_SUITE_P(PnpsolverTest, PnpsolverTest, ::testing::Values( + new ArmorIPPEPnPSolver(Robomaster::NormalArmorObjectPointsOpencv,Robomaster::LargeArmorObjectPointsOpencv) + )); + // INSTANTIATE__SUITE_P() + // 测试套件 + // 测试类名 + // 测试类的参数传入->GetParam() int main(int argc, char **argv) { ::testing::InitGoogleMock(&argc, argv); return RUN_ALL_TESTS();