Development/Cpp Unit Tests/ja

From The Document Foundation Wiki
Jump to: navigation, search
本ページはGlobal Wikiからの有志による翻訳ページです。未翻訳があることや内容が古い場合があります。最新化、翻訳にご協力お願いします。
日本語独自の情報についてまとめることを目的として、日本語コミュニティによって運営されているページとして 日本語コミュニティ独自ページ があります。
URLが で始まっていて、カテゴリーがJAのページです。


このページでは、LibreOffice のユニットテストを新たに作るときの方法を述べます。パッチを提供する場合は、対応するユニットテストも提供するようトライしてください。あなたの新しい機能の使い方や何について修正されたのかを、みんながより良く理解できることでしょう (また、リグレッションを除去できることでしょう)

This page is meant to describe how to create new Unit tests for LibreOffice. If you provide a patch on a lib, please try to provide corresponding unit tests. They'll allow a better understanding on how to use your new features or about what has been corrected (and will avoid regressions).

注意: non-developers could help も、なにがしかのユニットテストを改善するものです。

Note that even non-developers could help to improve some unit tests.



テストは、test_xxx.cxx というファイル名で、サブディレクトリ qa/ の中に置くのがよいでしょう。最初に、クラスを作らなくてはなりません。基本的なテスト・スケルトンとなるものはこれです:

The tests should be placed in qa/ subdir in a file named test_xxx.cxx. First, you've to create your class. Here's what can be a basic test skeleton:

#include "sal/config.h"
#include "sal/precppunit.hxx"

#include "cppunit/TestAssert.h"
#include "cppunit/TestFixture.h"
#include "cppunit/extensions/HelperMacros.h"
#include "cppunit/plugin/TestPlugIn.h"

 * Perform tests on MyClass.
class MyClassTest : public CppUnit::TestFixture
     * Tests capability Foo of the class.
    void testFoo();

    // Adds code needed to register the test suite
    // Declares the method as a test to call
    // End of test suite definition

void MyClassTest::testFoo()
    CPPUNIT_ASSERT(true); // do the tests here

// Put the test suite in the registry

} // namespace

Write one or more test functions and test various capabilities of the class. See CppUnit tutorial for further details about testing with CppUnit.


Now that your test class is ready, you need to compile and run it. This means creating file (substitute module and test name as appropriate) in the toplevel (module) directory if it does not exist yet:

$(eval $(call gb_CppunitTest_CppunitTest,module_test))

$(eval $(call gb_CppunitTest_add_exception_objects,module_test, \
module/qa/cppunit/test_xxx \

# add a list of all needed libraries here
$(eval $(call gb_CppunitTest_add_linked_libs,module_test, \
sal \
$(gb_STDLIBS) \

$(eval $(call gb_CppunitTest_set_include,module_test,\
-I$(OUTDIR)/inc \

You will also need to edit and add the following (or add to the list if it already exists):

$(eval $(call gb_Module_add_check_targets,module,\
     CppunitTest_module_test \

To build and run the tests, simply run make check. If the build succeeds, the tests will run automatically.

So, once your tests are running, all you need to do is fix any bugs they uncover.