Trait quickcheck::Testable
[−]
[src]
pub trait Testable: Send + 'static { fn result<G: Gen>(&self, &mut G) -> TestResult; }
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
fn result<G: Gen>(&self, &mut G) -> TestResult
Implementors
impl Testable for bool
impl Testable for ()
impl Testable for TestResult
impl<A, E> Testable for Result<A, E> where A: Testable, E: Debug + Send + 'static
impl<T: Testable> Testable for fn() -> T
impl<T: Testable, A: Arbitrary + Debug> Testable for fn(A) -> T
impl<T: Testable, A: Arbitrary + Debug, B: Arbitrary + Debug> Testable for fn(A, B) -> T
impl<T: Testable, A: Arbitrary + Debug, B: Arbitrary + Debug, C: Arbitrary + Debug> Testable for fn(A, B, C) -> T
impl<T: Testable, A: Arbitrary + Debug, B: Arbitrary + Debug, C: Arbitrary + Debug, D: Arbitrary + Debug> Testable for fn(A, B, C, D) -> T
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
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
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
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
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
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
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
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