jio.test.pbt.package-info Maven / Gradle / Ivy
Show all versions of jio-test Show documentation
/**
* This package provides classes and interfaces for defining and executing property-based tests (PBT) using the JIO
* (Java I/O) library. Property-based testing is a technique for automatically generating test cases based on properties
* or specifications of a system, allowing for comprehensive testing of various input scenarios.
*
* The key classes and interfaces in this package include:
*
* - {@link jio.test.pbt.Property}: Represents a property of a piece of code or program that should always be held
* and never fails. It models a supplier that returns a JIO effect that generates pseudorandom data to
* feed a test executed a specified number of times.
* - {@link jio.test.pbt.Testable}: An interface representing a testable property, which is a property that can be
* executed as a test.
* - {@link jio.test.pbt.Group}: A class for grouping multiple testable properties together and executing them in
* various ways, such as sequentially or in parallel. You can use the {@code par} method to execute properties
* in parallel or group them for more comprehensive testing.
* - {@link jio.test.pbt.GroupReport}: Represents information related to a group of test reports, including success,
* failure, and execution details. The reports are exhaustive and provide detailed feedback on failures
* and exceptions, helping you diagnose issues effectively.
* - {@link jio.test.pbt.TestResult}: An interface representing the result of the execution of a property test.
* It permits various result types, such as success, failure, or exception. The reports generated by the
* testing framework provide comprehensive feedback, making it easy to identify and resolve issues.
* - {@link jio.test.pbt.TestSuccess}: A class representing the successful execution of a property test.
* - {@link jio.test.pbt.TestFailure}: A class representing an observed failure during the execution of a property test.
* It includes a reason explaining why the test failed, allowing for quick diagnosis and resolution.
* - {@link jio.test.pbt.PropertyConsole}: A class for managing and interacting with properties using a console interface.
* It allows you to execute commands related to properties, such as reading and configuring them.
* - {@link jio.test.pbt.Command}: An annotation used to mark fields that represent commands within the Property Console.
* Fields annotated with {@code @Command} will be identified as callable commands when using the console.
*
*
* Additionally, this package includes classes for defining property-based tests for RESTful APIs, such as
* {@link jio.test.pbt.rest.CRUDPropBuilder}, and {@link jio.test.pbt.rest.CRDPropBuilder}, which provide a framework
* for building property tests for HTTP POST, GET, PUT, and DELETE operations on API endpoints. You can use these
* builders to create property tests for API endpoints and generate exhaustive reports for comprehensive testing.
*
* Property-based testing is a powerful technique for validating software behavior, and the JIO testing framework
* provides extensive feedback through exhaustive reports, making it easier to identify and resolve issues in your code.
*/
package jio.test.pbt;