Re: [Cppunit-devel] cookbook docs
Brought to you by:
blep
From: Bastiaan B. <bas...@li...> - 2001-05-15 22:05:26
|
Hi Steve, Thanks for the input. Didn't know yet somebody made a debian package :-) The documentation is still rather out of sync indeed. So far Baptiste and I have focused on fixing broken stuff in 1.5.3 and remerging Micheal Feathers extensions. (1.5.3 was the last release before Eric and E.J. stopped maintaing CppUnit). We didn't have time to update the docs yet. I must confess I haven't even read them completely yet. Therefore your contributions to the documentation are very welcome! When/if you have more, please submit it. I'll try to merge asap. Thanks, Bastiaan "Steve M. Robbins" wrote: > Hi, > > CppUnit looks like a useful framework for testing, so I thought > I'd see if I can use it for my projects. I installed the debian > package and started with the "cookbook" page. > > When I started compiling the running example, I ran into several > difficulties. I tried to update the file to reflect the > current state of the library; patch is attached. > > Summary of changes: > * note the namespace > * type Complex needs a proper constructor > * SetUp() and friends need to be public > * note that calling run() member of a TestCaller is not useful > (this baffled me for a while --- I did "assert(false)", and > couldn't figure out why I got no diagnostics!) > > I ran out of steam when I got to the "TestRunner" section. None of > that worked for me, since CppUnit has no TestRunner! Now I see that > 1.5.5 has it, but only in MSWindows. I suppose the thing to do is > replace or supplement this section with a description of using > TextTestResults? > > Regards, > -Steve > > --- old/cppunit-1.5.4.orig/doc/cookbook.html Thu Oct 5 14:37:28 2000 > +++ cppunit-1.5.4/doc/cookbook.html Mon May 14 17:34:12 2001 > @@ -8,7 +8,12 @@ > <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> > </P> > <H1>CppUnit Cookbook</H1> > - <P>Here is a short cookbook to help you get started. </P> > + <P> > + Here is a short cookbook to help you get started. > + Note that all CppUnit types are defined in the CppUnit > + namespace. For brevity, the prefix <b>CppUnit::</b> > + is omitted in the following examples. > + </P> > <H2>Simple Test Case</H2> > <P> > You want to know whether your code is working. > @@ -90,9 +95,7 @@ > friend bool operator== (const Complex& a, const Complex& b); > double real, imaginary; > public: > - Complex () { > - real = imaginary = 0.0; > - } > + Complex ( double r, double i = 0 ) : real(r),imaginary(i) {} > }; > > bool operator== (const Complex& a, const Complex& b) > @@ -153,7 +156,7 @@ > <TT><PRE>	class ComplexNumberTest : public TestCase { > 	private: > Complex 	*m_10_1, *m_1_1; *m_11_2; > -	protected: > +	public: > 	void		setUp () { > 			 m_10_1 = new Complex (10, 1); > 			 m_1_1 = new Complex (1, 1); > @@ -170,21 +173,22 @@ > 			 assert (*m_10_1 + *m_1_1 == *m_11_2); > 	} > 	};</PRE> > -</TT><P>Create and run instances for each test case like this:</P> > -<TT><PRE>	test = new TestCaller<ComplexNumberTest>("testEquality", ComplexNumberTest::testEquality); > - test->run (); </PRE> > -</TT><P>The second argument to the test caller constructor is the address of a method on ComplexNumberTest. When the test caller is run, that specific method will be run.</P> > -<P>Once you have several tests, organize them into a suite.</P> > +</TT><P>One may create and run instances for each test case like this:</P> > +<TT><PRE>	TestCaller<ComplexNumberTest> test("testEquality", &ComplexNumberTest::testEquality); > + test.run (); </PRE> > +</TT><P>The second argument to the test caller constructor is the address of a method on ComplexNumberTest. When the test caller is run, that specific method will be run. This is not a useful thing to do, however, as no diagnostics will be > + displayed. One will normally use a TestRunner (see below) to display > + the results. > + </P> > + > + <P>Once you have several tests, organize them into a suite.</P> > <P> </P> > <H2>Suite</H2> > <P>How do you set up your tests so that you can run them all at once?<BR> > <BR> > -CppUnit provides a TestSuite class that runs any number of TestCases together. For example, to run a single test case, you execute:</P> > -<TT><PRE>	TestResult result; > -	TestCaller<ComplexNumberTest> test ("testAddition", ComplexNumberTest::testAddition); > -	Test.run (&result);</PRE> > -</TT><P> </P> > -<P>To create a suite of two or more tests, you do the following:</P> > +CppUnit provides a TestSuite class that runs any number of TestCases together. > + We saw, above, how to run a single test case. > +To create a suite of two or more tests, you do the following:</P> > <TT><PRE>	TestSuite suite; > 	TestResult result; > 	suite.addTest (new TestCaller<ComplexNumberTest>("testEquality", ComplexNumberTest::testEquality)); > @@ -193,6 +197,7 @@ > </PRE> > </TT><P>TestSuites don't only have to contain callers for TestCases. They can contain any object that implements the Test interface. For example, you can create a TestSuite in your code and I can create one in mine, and we can run them together by creating a TestSuite that contains both: </P> > <TT><PRE>	TestSuite suite; > +	TestResult result; > 	suite.addTest (ComplexNumberTest.suite ()); > 	suite.addTest (SurrealNumberTest.suite ()); > 	suite.run (&result);</PRE> > > -- > by Rocket to the Moon, > by Airplane to the Rocket, > by Taxi to the Airport, > by Frontdoor to the Taxi, > by throwing back the blanket and laying down the legs ... > - They Might Be Giants > > _______________________________________________ > Cppunit-devel mailing list > Cpp...@li... > http://lists.sourceforge.net/lists/listinfo/cppunit-devel |