NAME Rex::Test::Spec - Write Rex::Test like RSpec! VERSION Version 0.03 SYNOPSIS use Rex::Test::Spec; describe "Nginx Test", sub { context run("nginx -t"), "nginx.conf testing", sub { like its('stdout'), qr/ok/; }; context file("~/.ssh/id_rsa"), sub { is its('ensure'), 'file'; is its('mode'), '0600'; like its('content'), qr/name\@email\.com/; }; context file("/data"), sub { is its('ensure'), 'directory'; is its('owner'), 'www'; is its('mounted_on'), '/dev/sdb1'; isnt its('writable'); }; context service("nginx"), sub { is its('ensure'), 'running'; }; context pkg("nginx"), sub { is its('ensure'), 'present'; is its('version'), '1.5.8'; }; context cron, sub { like its('www'), 'logrotate'; }; context gateway, sub { is it, '192.168.0.1'; }; context group('www'), sub { ok its('ensure'); }; context iptables, sub { }; context port(80), sub { is its('bind'), '0.0.0.0'; is its('proto'), 'tcp'; is its('command'), 'nginx'; }; context process('nginx'), sub { like its('command'), qr(nginx -c /etc/nginx.conf); ok its('mem') > 1024; }; context routes, sub { is_deeply its(1), { destination => $dest, gateway => $gw, genmask => $genmask, flags => $flags, mss => $mss, irtt => $irtt, iface => $iface, }; }; context sysctl, sub { is its('vm.swapiness'), 1; }; context user('www'), sub { ok its('ensure'); is its('home'), '/var/www/html'; is its('shell'), '/sbin/nologin'; is_deeply its('belong_to'), ['www', 'nogroup']; }; }; done_testing; EXPORT FUNCTIONS Spec definition functions These are the functions you will use to define behaviors and run your specs: *describe* (and alias to *context*), *its* (alias to *it*). Normally suggest "describe "strings"" and "context resource type object", use "its(key)" return value, "it" return objects by default. Test::More export functions This now include *is*, *isnt*, *ok*, *is_deeply*, *like*, *unlike*, *done_testing*. You'll use these to assert correct behavior. The resource type name will be automatic passed as testing message. Rex resource type generation functions Now support *cron*, *gateway*, *iptables*, *port*, *routes*, *service*, *user*, *file*, *group*, *pkg*, *process*, *run*, *sysctl*. See "SYNOPSIS" for more details. AUTHOR Rao Chenlin(chenryn), "" SEE ALSO 1. Rspec 2. Serverspec 3. TDD (Test Driven Development) 4. BDD (Behavior Driven Development) 5. Test::More 6. Rex BUGS Please report any bugs or feature requests to "bug-rex-test-spec at rt.cpan.org", or through the web interface at . I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. Also accept pull requests and issue at . LICENSE AND COPYRIGHT Copyright 2014 Rao Chenlin(chenryn). This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See for more information.