Unit tests in Vala
Simple test
void add_foo_tests () {
Test.add_func ("/vala/test", () => {
assert ("foo" + "bar" == "foobar");
});
}
void main (string[] args) {
Test.init (ref args);
add_foo_tests ();
Test.run ();
}
Compile this with:
valac unit-test.vala
Test using GTK+
void add_foo_tests () {
Test.add_func ("/vala/test", () => {
var widget = new Gtk.Button ();
assert (widget is Gtk.Button);
});
}
void main (string[] args) {
Gtk.init (ref args);
Test.init (ref args);
add_foo_tests ();
Idle.add (() => {
Test.run ();
Gtk.main_quit ();
return false;
});
Gtk.main ();
}
Compile this with:
valac --pkg gtk+-2.0 unit-test-gtk.vala
Meson
sources = files( 'unit-test-gtk.vala', ) test_unit = 'unit-test' deps = [dependency('glib-2.0'), dependency('gtk+-3.0'), dependency('gobject-2.0')] exe = executable(test_unit, sources: sources, dependencies : deps) test(test_unit, exe)
Compile with meson:
meson build cd build meson test