[][src]Crate fluid

Latest Version Documentation Lines of Code

fluid is a library to write human readable tests.

This crate is in alpha state. It is fully usable, but one can (rightfully) think that there are incomplete or missing features. The maintainer would be very happy if he was given some feedback, issues, pull requests, etc.


fluid is a crate to make the tests more readable and easier to write, mainly inspired by xUnit. It is still in an unstable state. Be adviced that in future alphas — let alone in the release — it could/will be very different.

Wiki

Detailed information is in the wiki.

Goals

The current goals are to provide:

  • ☑ Easily readable tests: they should be read like english sentences.
  • ☑ Nice and understandable error messages.
  • ☐ The most possible useful assertions for common cases: numbers, Iterators, Options, Results, etc.
  • ☐ A full test framework that launches the tests, displays the failures, etc. Since this feature is not stabilized, it will be gated in the nightly compiler.

Non-goals:

  • Run the tests fast: under the hood, there are some code generation at compile-time, especially for the #[theory] and/or #[session] tests. This will never be as fast as the standard tests.

Known bugs/limitations

  • The stringification of the left element is not perfect when the procedural macros are used. That is because there is no way to render the token as they were written by the user (as far as I know).
  • Hygiene issue. For now, every span is located at the macro call site. That means that the tests report a failure at the #[fact], #[theory] or #[session] line.

Changelog

See the dedicated file.

Roadmap

See the dedicated file.

Modules

core

This module contains all that is used to create an assertion.

prelude

The imports needed to use the crate.

traits

Various traits used for make the assertions generic.

wiki

The crate's wiki.

Macros

fact_

A macro to replace the custom #[fact] attribute if you do not want to use it.