mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-01-26 05:56:14 +01:00
gtestutils: Add an example of using test fixtures
Add a simple example of a test suite with two unit tests both using the same fixture. https://bugzilla.gnome.org/show_bug.cgi?id=743014
This commit is contained in:
parent
ee245b57ff
commit
11a846b6bf
@ -97,6 +97,70 @@
|
||||
* GLib ships with two utilities called [gtester][gtester] and
|
||||
* [gtester-report][gtester-report] to facilitate running tests and producing
|
||||
* nicely formatted test reports.
|
||||
*
|
||||
* A full example of creating a test suite with two tests using fixtures:
|
||||
* |[<!-- language="C" -->
|
||||
* #include <glib.h>
|
||||
* #include <locale.h>
|
||||
*
|
||||
* typedef struct {
|
||||
* MyObject *obj;
|
||||
* OtherObject *helper;
|
||||
* } MyObjectFixture;
|
||||
*
|
||||
* static void
|
||||
* my_object_fixture_set_up (MyObjectFixture *fixture,
|
||||
* gconstpointer user_data)
|
||||
* {
|
||||
* fixture->obj = my_object_new ();
|
||||
* my_object_set_prop1 (fixture->obj, "some-value");
|
||||
* my_object_do_some_complex_setup (fixture->obj, user_data);
|
||||
*
|
||||
* fixture->helper = other_object_new ();
|
||||
* }
|
||||
*
|
||||
* static void
|
||||
* my_object_fixture_tear_down (MyObjectFixture *fixture,
|
||||
* gconstpointer user_data)
|
||||
* {
|
||||
* g_clear_object (&fixture->helper);
|
||||
* g_clear_object (&fixture->obj);
|
||||
* }
|
||||
*
|
||||
* static void
|
||||
* test_my_object_test1 (MyObjectFixture *fixture,
|
||||
* gconstpointer user_data)
|
||||
* {
|
||||
* g_assert_cmpstr (my_object_get_property (fixture->obj), ==, "initial-value");
|
||||
* }
|
||||
*
|
||||
* static void
|
||||
* test_my_object_test2 (MyObjectFixture *fixture,
|
||||
* gconstpointer user_data)
|
||||
* {
|
||||
* my_object_do_some_work_using_helper (fixture->obj, fixture->helper);
|
||||
* g_assert_cmpstr (my_object_get_property (fixture->obj), ==, "updated-value");
|
||||
* }
|
||||
*
|
||||
* int
|
||||
* main (int argc, char *argv[])
|
||||
* {
|
||||
* setlocale (LC_ALL, "");
|
||||
*
|
||||
* g_test_init (&argc, &argv, NULL);
|
||||
* g_test_bug_base ("http://bugzilla.gnome.org/show_bug.cgi?id=");
|
||||
*
|
||||
* // Define the tests.
|
||||
* g_test_add ("/my-object/test1", MyObjectFixture, "some-user-data",
|
||||
* my_object_fixture_set_up, test_my_object_test1,
|
||||
* my_object_fixture_tear_down);
|
||||
* g_test_add ("/my-object/test2", MyObjectFixture, "some-user-data",
|
||||
* my_object_fixture_set_up, test_my_object_test2,
|
||||
* my_object_fixture_tear_down);
|
||||
*
|
||||
* return g_test_run ();
|
||||
* }
|
||||
* ]|
|
||||
*/
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user