Contents Menu Expand Light mode Dark mode Auto light/dark mode
Crochet 0.14 documentation
Crochet 0.14 documentation
  • The Crochet System
    • What’s Crochet?
    • Installing Crochet
    • How is Crochet structured?
      • The Crochet universe
      • Package configuration
    • Data and types
      • Types and data modelling
      • Hierarchies of types
      • Traits
    • Commands
      • What are commands?
      • Signatures and their uses
      • Executing commands
      • Why are commands …?
    • Computing with Crochet
      • Execution models
      • Naming values
      • Intrinsic data types
        • Gradual representations
        • Numeric models
        • Textual models
        • Logical models
        • Program representations
        • Collections
      • Applying programs and commands
      • Using data
      • Equality
      • Branching
      • Working with multiple values
    • Effects
      • What are effects?
      • Effect handlers
      • Contextual handlers
    • Verification
      • Example-based testing
      • Contracts
    • Foreign interfaces
      • Writing external functions
      • The FFI type
    • Security and capabilities
      • Why use capabilities?
      • Capabilities and groups
      • Dynamic capabilities
    • Annex A: Design philosophy
    • Annex B: Sociology and linguistics
  • Crochet’s API Reference
  • The Brief Syntax Cheatsheet
    • Declarations
      • capability
      • command
      • define
      • effect
      • handler
      • implement
      • local
      • open
      • prelude
      • protect
      • test
      • trait
      • type
    • Expressions
      • Statements
        • assert expression
        • let expression
      • Complex expressions
        • Program application
        • condition expression
        • continue with expression
        • Delayed programs (Lambdas)
        • do .. end expression
        • for expression
        • force expression
        • foreign expression
        • handle expression
        • Holes
        • Command invocation
        • perform expression
        • Pipe expressions
        • Projection
        • return expression
        • self expression
        • Static types
        • Variable references
      • Atomic expressions
        • Boolean literals
        • Floating point literals
        • Global references
        • Integer literals
        • Interpolation
        • lazy expression
        • List expression
        • new expression
        • Nothing literal
        • Record expressions
        • Text literals
  • Contributing to Crochet
    • Code of Conduct
    • Reporting issues
    • Reporting security issues
    • Requesting features
    • Contributing code
  • Glossary
Back to top

Verification#

We can manually test programs to see if they behave as expected, but there’s only so much we can really cover this way. Automated verification complements this process by letting us tell Crochet what we expect to happen and having Crochet verify that for us.

Automated verification in Crochet is divided between the examples, contracts, and models.

  • Example-based testing
    • Test declarations
      • Convenience for command tests
    • Testing effects
  • Contracts
    • Pre- and post-conditions
Next
Example-based testing
Previous
Contextual handlers
Copyright © 2021, Niini
Made with Sphinx and @pradyunsg's Furo