Skip to content

Modern c++17 unit testing framework on Microsoft Windows, Apple macOS, Linux, iOS and android.

License

Notifications You must be signed in to change notification settings

gammasoft71/tunit

Repository files navigation

tunit

Modern c++17 unit testing framework on Windows, macOS, Linux, iOS and android.

tunit

Continuous Integration build status

Operating system Status
Windows Build status
macOS Build Status
Linux Build Status

Download the latest stable tunit version

SourceForge Download tunit

Features

  • An xUnit test framework.
  • Auto registration of class and method based tests.
  • Rich set of assertions.
  • ...

For more information see

Examples

The classic first application 'Hello World'.

tunit_hello_world.cpp

#include <tunit/tunit>
#include <string>

using namespace std;
using namespace tunit;

namespace unit_tests {
  class test_class_(hello_world_test) {
  public:
    void test_method_(create_string_from_literal) {
      string s = "Hello, World!";
      valid::are_equal(13, s.size());
      assert::are_equal("Hello, World!", s);
    }
    
    void test_method_(create_string_from_chars) {
      string s = {'H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!'};
      valid::are_equal(13, s.size());
      string_assert::starts_with("Hello,", s);
      string_assert::ends_with(" World!", s);
    }
  };
}

// The main entry point for the application.
int main() {
  return console_unit_test().run();
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.3)

project(tunit_hello_world)
find_package(tunit REQUIRED)
add_executable(${PROJECT_NAME} tunit_hello_world.cpp)
target_link_libraries(${PROJECT_NAME} tunit)

Output

tart 2 tests from 1 test case
Run tests:
  SUCCEED hello_world_test.create_string_from_literal (0 ms total)
  SUCCEED hello_world_test.create_string_from_chars (0 ms total)

Test results:
  SUCCEED 2 tests.
End 2 tests from 1 test case ran. (0 ms total)

Getting Started

  • Installation provides download and install documentation.
  • Portability provides information about C++, libraries dependency, Operating System suported, Compilators and Devepment Environment tools.
  • Examples provides some examples.

© 2021 Gammasoft.