logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Test2::Manual::Testing - Hub for documentation about writing tests with Test2.

Authors

       Chad Granum <exodist@cpan.org>

Bundle Documentation

       COMING SOON.

Description

       This document outlines all the tutorials and POD that cover writing tests. This section does not cover
       any Test2 internals, nor does it cover how to write new tools, for that see Test2::Manual::Tooling.

Listing Dependencies

       When  you  use  Test2, specifically things included in Test2::Suite you need to list them in your modules
       test dependencies. It is important to note that you should list the tools/plugins/bundles you  need,  you
       should not simply list Test2::Suite as your dependency. Test2::Suite is a living distribution intended to
       represent  the  "current"  best  practices.  As  tools, plugins, and bundles evolve, old ones will become
       discouraged and potentially be moved from Test2::Suite into their own distributions.

       One goal of Test2::Suite is to avoid breaking backwards compatibility.  Another goal is to always improve
       by replacing bad designs with better ones.  When necessary Test2::Suite will break old modules  out  into
       separate  dists  and define new ones, typically with a new bundle. In short, if we feel the need to break
       something we will do so by creating a new bundle, and discouraging the old one, but we will not break the
       old one.

       So for example, if you use Test2::V0, and Dist::Zilla you should have this in your config:

           [Prereqs / TestRequires]
           Test2::V0 = 0.000060

       You SHOULDNOT do this:

           [Prereqs / TestRequires]
           Test2::Suite = 0.000060

       Because Test2::V0 might not always be part of Test2::Suite.

       When writing new tests you should often check Test2::Suite to see what the current recommended bundle is.

       Dist::Zilla

           [Prereqs / TestRequires]
           Test2::V0 = 0.000060

       ExtUtils::MakeMaker

           my %WriteMakefileArgs = (
             ...,
             "TEST_REQUIRES" => {
               "Test2::V0" => "0.000060"
             },
             ...
           );

       Module::Install

           test_requires 'Test2::V0' => '0.000060';

       Module::Build

           my $build = Module::Build->new(
               ...,
               test_requires => {
                   "Test2::V0" => "0.000060",
               },
               ...
           );

Maintainers

       Chad Granum <exodist@cpan.org>

Name

       Test2::Manual::Testing - Hub for documentation about writing tests with Test2.

Namespace Map

       When writing tests there are a couple namespaces to focus on:

       Test2::Tools::*
           This  is where toolsets can be found. A toolset exports functions that help you make assertions about
           your code. Toolsets will only export functions, they should not ever have extra/global effects.

       Test2::Plugins::*
           This is where plugins live. Plugins should not export anything, but instead will introduce  or  alter
           behaviors for Test2 in general. These behaviors may be lexically scoped, or they may be global.

       Test2::Bundle::*
           Bundles combine toolsets and plugins together to reduce your boilerplate. First time test writers are
           encouraged to start with the Test2::V0 bundle (which is an exception to the namespace rule as it does
           not live under "Test2::Bundle::"). If you find yourself loading several plugins and toolsets over and
           over again you could benefit from writing your own bundle.

       Test2::Require::*
           This  namespace  contains  modules that will cause a test to skip if specific conditions are not met.
           Use this if you have tests that only run on specific perl versions,  or  require  external  libraries
           that may not always be available.

Plugin Documentation

       COMING SOON.

Require Documentation

       COMING SOON.

See Also

       Test2::Manual - Primary index of the manual.

Source

       The source code repository for Test2-Manual can be found at https://github.com/Test-More/Test2-Suite/.

Toolset Documentation

       COMING SOON.

Tutorials

SIMPLE/INTRODUCTIONTUTORIAL
       Test2::Manual::Testing::Introduction is an introduction to writing tests using the Test2 tools.

   MIGRATINGFROMTEST::BUILDERandTEST::MORE
       Test2::Manual::Testing::Migrating Is a tutorial for  converting  old  tests  that  use  Test::Builder  or
       Test::More to the newer Test2 way of doing things.

   ADVANCEDPLANNING
       Test2::Manual::Testing::Planning is a tutorial on the many ways to set a plan.

   TODOTESTS
       Test2::Manual::Testing::Todo is a tutorial for markings tests as TODO.

   SUBTESTS
       COMING SOON.

   COMPARISONS
       COMING SOON.

       SIMPLECOMPARISONS

       COMING SOON.

       ADVANCEDCOMPARISONS

       COMING SOON.

   TESTINGEXPORTERS
       COMING SOON.

   TESTINGCLASSES
       COMING SOON.

   TRAPPING
       COMING SOON.

       TRAPPINGEXCEPTIONS

       COMING SOON.

       TRAPPINGWARNINGS

       COMING SOON.

   DEFERREDTESTING
       COMING SOON.

   MANAGINGENCODINGS
       COMING SOON.

   AUTO-ABORTONFAILURE
       COMING SOON.

   CONTROLLINGRANDOMBEHAVIOR
       COMING SOON.

   WRITINGYOUROWNBUNDLE
       COMING SOON.

See Also