1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
//! Testing library that provides some tools to apply "Advanced"
//! [Arrange-Act-Assert](https://github.com/testdouble/contributing-tests/wiki/Arrange-Act-Assert)
//! testing design.
//!
//! # Examples
//!
//! ```rust
//! use test4a::{Equal, Message, PanicWhen, Runner};
//!
//! // Definition of the structure that contains expected values.
//! struct Expected {
//! value: usize,
//! }
//!
//! // Definition of the "act" methods.
//! fn add_0(message: &mut Message, value: &mut usize) {
//! message.set("Add 0 to the initial integer");
//! *value += 0;
//! }
//!
//! fn add_1(message: &mut Message, value: &mut usize) {
//! message.set("Add 1 to the initial integer");
//! *value += 1;
//! }
//!
//! fn subtract_1(message: &mut Message, value: &mut usize) {
//! message.set("Subtract 1 to the initial integer");
//! *value -= 1;
//! }
//!
//! // Definition of the "assert" methods.
//! fn expect_value(
//! message: &mut Message,
//! value: usize,
//! expected: Expected,
//! ) -> Equal<usize> {
//! message.set("value == expected.value");
//! Equal::new(value, expected.value)
//! }
//!
//! // Definition of the tests to execute.
//! #[test]
//! fn test_zero() {
//! Runner::arrange(|message| {
//! message.set("Initial value of 0");
//! 0
//! })
//! .act(add_0, || Expected { value: 0 })
//! .act(add_1, || Expected { value: 1 })
//! .act_panic(PanicWhen::Debug, subtract_1)
//! .assert(expect_value);
//! }
//!
//! #[test]
//! fn test_other() {
//! Runner::arrange(|message| {
//! message.set("Initial value of 42");
//! 42
//! })
//! .act(add_0, || Expected { value: 42 })
//! .act(add_1, || Expected { value: 43 })
//! .act(subtract_1, || Expected { value: 41 })
//! .assert(expect_value);
//! }
//! ```
pub use Assert;
pub use Contains;
pub use Equal;
pub use False;
pub use Greater;
pub use GreaterEqual;
pub use Less;
pub use LessEqual;
pub use Multiple;
pub use NotEqual;
pub use True;
pub use Message;
pub use PanicWhen;
pub use Runner;