Parameterizing a test using CppUnit

前端 未结 7 1364
情话喂你
情话喂你 2021-01-05 07:56

My organization is using CppUnit and I am trying to run the same test using different parameters. Running a loop inside the test is not a good option as any failure will abo

7条回答
  •  孤城傲影
    2021-01-05 08:29

    I'm not a C++ programmer but I can help with the unit-test concept:

    Test-cases are meant to run isolated and with no dependency on external parameters. Additionally you should keep the number of test-cases down to the minimum which covers most of your code. There are cases, however (and I have already dealt with some), where some tests look the same, differing only by some minor parameters. The best bet then is to write a fixture which takes the parameter you're talking about, and then have one test-case for each of the parameters, calling the fixture with it. A generic example follows:

    class MyTestCase
    
      # this is your fixture
      def check_special_condition(param)
        some
        complex
        tests
      end
    
      # these are your test-cases
      def test_1
        check_special_condition("value_1")
      end
    
      def test_2
        check_special_condition("value_2")
      end
    
    end
    

    Otherwise you're not writing true test-cases, because they're supposed to be reproducible without much knowledge from the one who is executing them. I imagine there are a handful of parameters which are all important as input to the tests. Then why not make each one explicit inside its own test-case? That's also the best way to document then, instead of writing a separate document to guide the programmer which will read the code years later.

提交回复
热议问题