NAME¶
Test::Expect - Automated driving and testing of terminal-based programs
SYNOPSIS¶
# in a t/*.t file:
use Test::Expect;
use Test::More tests => 13;
expect_run(
command => "perl testme.pl",
prompt => 'testme: ',
quit => 'quit',
);
expect("ping", "pong", "expect");
expect_send("ping", "expect_send");
expect_is("* Hi there, to testme", "expect_is");
expect_like(qr/Hi there, to testme/, "expect_like");
DESCRIPTION¶
Test::Expect is a module for automated driving and testing of terminal-based
programs. It is handy for testing interactive programs which have a prompt,
and is based on the same concepts as the Tcl Expect tool. As in
Expect::Simple, the Expect object is made available for tweaking.
Test::Expect is intended for use in a test script.
SUBROUTINES¶
expect_run¶
The expect_run subroutine sets up Test::Expect. You must pass in the interactive
program to run, what the prompt of the program is, and which command quits the
program:
expect_run(
command => "perl testme.pl",
prompt => 'testme: ',
quit => 'quit',
);
expect¶
The expect subroutine is the catch all subroutine. You pass in the command, the
expected output of the subroutine and an optional comment.
expect("ping", "pong", "expect");
expect_send¶
The expect_send subroutine sends a command to the program. You pass in the
command and an optional comment.
expect_send("ping", "expect_send");
expect_is¶
The expect_is subroutine tests the output of the program like Test::More's is.
It has an optional comment:
expect_is("* Hi there, to testme", "expect_is");
expect_like¶
The expect_like subroutine tests the output of the program like Test::More's
like. It has an optional comment:
expect_like(qr/Hi there, to testme/, "expect_like");
expect_handle¶
This returns the Expect object.
expect_quit¶
Closes the Expect handle.
SEE ALSO¶
Expect, Expect::Simple.
AUTHOR¶
Leon Brocard, "<acme@astray.com>"
COPYRIGHT¶
Copyright (C) 2005, Leon Brocard
This module is free software; you can redistribute it or modify it under the
same terms as Perl itself.