如何使这些测试用户代码好看?

时间:2012-11-09 14:31:15

标签: c++ unit-testing refactoring tdd

我是TDD和C ++的新手,我写了一些代码,但看起来很难看......

你能给我一些关于如何重构这些代码的技巧吗?

我定义了这样的测试用例:

// define some test case
namespace test_case_planes {
const std::string t_filename = "planes.segy_first_trace";
boost::uintmax_t t_file_size = 5888;
boost::uintmax_t t_traces_size = 1;
boost::int16_t t_trace_samples_size = 512;
boost::int16_t t_sample_interval = 4000; // 2000us, 2ms
}

namespace test_case_ld0042_file_00018 {
const std::string t_filename = "ld0042_file_00018.sgy_first_trace";
boost::uintmax_t t_file_size = 12040;
boost::uintmax_t t_traces_size = 1;
boost::int16_t t_trace_samples_size = 2050;
boost::int16_t t_sample_interval = 2000; // 2000us, 2ms
}

并像这样测试(使用谷歌测试)

TEST(Segy, constructWithNoParas){
    using namespace test_case_planes;
    segy::Segy* test_segy = new segy::Segy();
    EXPECT_EQ(test_segy->getFilename(), t_filename);
}

TEST(Segy, constructWithFilename){
    using namespace test_case_ld0042_file_00018;
    segy::Segy* test_segy = new segy::Segy(t_filename);
    EXPECT_EQ(test_segy->getFilename(), t_filename);
}

TEST(Segy, setFilename){
    using namespace test_case_ld0042_file_00018;
    segy::Segy* test_segy = new segy::Segy();
    test_segy->setFilename(t_filename);
    EXPECT_EQ(test_segy->getFilename(), t_filename);
}

1 个答案:

答案 0 :(得分:1)

我认为你所寻找的是一个固定装置。我不熟悉谷歌测试,但大多数测试框架中都应该提供测试装置。您应该查看相关文档。