Trait Testable

Source
pub trait Testable: Send + 'static {
    // Required method
    fn result<G: Gen>(&self, _: &mut G) -> TestResult;
}
Expand description

Testable describes types (e.g., a function) whose values can be tested.

Anything that can be tested must be capable of producing a TestResult given a random number generator. This is trivial for types like bool, which are just converted to either a passing or failing test result.

For functions, an implementation must generate random arguments and potentially shrink those arguments if they produce a failure.

It’s unlikely that you’ll have to implement this trait yourself.

Required Methods§

Source

fn result<G: Gen>(&self, _: &mut G) -> TestResult

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl Testable for bool

Source§

fn result<G: Gen>(&self, _: &mut G) -> TestResult

Source§

impl Testable for ()

Source§

fn result<G: Gen>(&self, _: &mut G) -> TestResult

Source§

impl<A, E> Testable for Result<A, E>
where A: Testable, E: Debug + Send + 'static,

Source§

fn result<G: Gen>(&self, g: &mut G) -> TestResult

Source§

impl<T: Testable> Testable for fn() -> T

Source§

fn result<G_: Gen>(&self, g: &mut G_) -> TestResult

Source§

impl<T: Testable, A: Arbitrary + Debug> Testable for fn(A) -> T

Source§

fn result<G_: Gen>(&self, g: &mut G_) -> TestResult

Source§

impl<T: Testable, A: Arbitrary + Debug, B: Arbitrary + Debug> Testable for fn(A, B) -> T

Source§

fn result<G_: Gen>(&self, g: &mut G_) -> TestResult

Source§

impl<T: Testable, A: Arbitrary + Debug, B: Arbitrary + Debug, C: Arbitrary + Debug> Testable for fn(A, B, C) -> T

Source§

fn result<G_: Gen>(&self, g: &mut G_) -> TestResult

Source§

impl<T: Testable, A: Arbitrary + Debug, B: Arbitrary + Debug, C: Arbitrary + Debug, D: Arbitrary + Debug> Testable for fn(A, B, C, D) -> T

Source§

fn result<G_: Gen>(&self, g: &mut G_) -> TestResult

Source§

impl<T: Testable, A: Arbitrary + Debug, B: Arbitrary + Debug, C: Arbitrary + Debug, D: Arbitrary + Debug, E: Arbitrary + Debug> Testable for fn(A, B, C, D, E) -> T

Source§

fn result<G_: Gen>(&self, g: &mut G_) -> TestResult

Source§

impl<T: Testable, A: Arbitrary + Debug, B: Arbitrary + Debug, C: Arbitrary + Debug, D: Arbitrary + Debug, E: Arbitrary + Debug, F: Arbitrary + Debug> Testable for fn(A, B, C, D, E, F) -> T

Source§

fn result<G_: Gen>(&self, g: &mut G_) -> TestResult

Source§

impl<T: Testable, A: Arbitrary + Debug, B: Arbitrary + Debug, C: Arbitrary + Debug, D: Arbitrary + Debug, E: Arbitrary + Debug, F: Arbitrary + Debug, G: Arbitrary + Debug> Testable for fn(A, B, C, D, E, F, G) -> T

Source§

fn result<G_: Gen>(&self, g: &mut G_) -> TestResult

Source§

impl<T: Testable, A: Arbitrary + Debug, B: Arbitrary + Debug, C: Arbitrary + Debug, D: Arbitrary + Debug, E: Arbitrary + Debug, F: Arbitrary + Debug, G: Arbitrary + Debug, H: Arbitrary + Debug> Testable for fn(A, B, C, D, E, F, G, H) -> T

Source§

fn result<G_: Gen>(&self, g: &mut G_) -> TestResult

Source§

impl<T: Testable, A: Arbitrary + Debug, B: Arbitrary + Debug, C: Arbitrary + Debug, D: Arbitrary + Debug, E: Arbitrary + Debug, F: Arbitrary + Debug, G: Arbitrary + Debug, H: Arbitrary + Debug, I: Arbitrary + Debug> Testable for fn(A, B, C, D, E, F, G, H, I) -> T

Source§

fn result<G_: Gen>(&self, g: &mut G_) -> TestResult

Source§

impl<T: Testable, A: Arbitrary + Debug, B: Arbitrary + Debug, C: Arbitrary + Debug, D: Arbitrary + Debug, E: Arbitrary + Debug, F: Arbitrary + Debug, G: Arbitrary + Debug, H: Arbitrary + Debug, I: Arbitrary + Debug, J: Arbitrary + Debug> Testable for fn(A, B, C, D, E, F, G, H, I, J) -> T

Source§

fn result<G_: Gen>(&self, g: &mut G_) -> TestResult

Source§

impl<T: Testable, A: Arbitrary + Debug, B: Arbitrary + Debug, C: Arbitrary + Debug, D: Arbitrary + Debug, E: Arbitrary + Debug, F: Arbitrary + Debug, G: Arbitrary + Debug, H: Arbitrary + Debug, I: Arbitrary + Debug, J: Arbitrary + Debug, K: Arbitrary + Debug> Testable for fn(A, B, C, D, E, F, G, H, I, J, K) -> T

Source§

fn result<G_: Gen>(&self, g: &mut G_) -> TestResult

Source§

impl<T: Testable, A: Arbitrary + Debug, B: Arbitrary + Debug, C: Arbitrary + Debug, D: Arbitrary + Debug, E: Arbitrary + Debug, F: Arbitrary + Debug, G: Arbitrary + Debug, H: Arbitrary + Debug, I: Arbitrary + Debug, J: Arbitrary + Debug, K: Arbitrary + Debug, L: Arbitrary + Debug> Testable for fn(A, B, C, D, E, F, G, H, I, J, K, L) -> T

Source§

fn result<G_: Gen>(&self, g: &mut G_) -> TestResult

Implementors§