如果(且仅当)测试用例成功,则执行签入Perl测试
我在perl中使用Test::Unit::TestCase进行单元测试。如果——并且仅当——到目前为止,当前测试成功,是否有任何方法可以在下拉子模块中执行一些特殊断言如果(且仅当)测试用例成功,则执行签入Perl测试,perl,testing,teardown,Perl,Testing,Teardown,我在perl中使用Test::Unit::TestCase进行单元测试。如果——并且仅当——到目前为止,当前测试成功,是否有任何方法可以在下拉子模块中执行一些特殊断言 sub set_up { my ($O_self) = @_; # prepare test case } sub tear_down { my ($O_self) = @_; # how to check if test succeeds so far? if (...) { $O_self-&
sub set_up {
my ($O_self) = @_;
# prepare test case
}
sub tear_down {
my ($O_self) = @_;
# how to check if test succeeds so far?
if (...) {
$O_self->assert_something_special_for_all_tests();
}
}
sub test_any1 {
# some test
}
sub test_any2 {
# some other test
}
当然,我可以在每次测试结束时进行特殊检查,但最好在拆卸时进行检查,这样我就不会忘记特殊检查。test::Unit::TestCase已经8年没有更新了。它不使用普通的Test::Builder基础结构,因此不能与其他测试模块组合。尽可能避免。如果要在Perl中进行XUntType测试,请考虑使用。 因为它是使用构建的,所以您可以访问底层的Test::Builder对象并询问它测试的状态
sub teardown : Test(teardown) {
my $self = shift;
my $tb = $self->builder;
my $all_tests_passing = !grep !$_, $tb->summary;
do_something_extra if $all_tests_passing;
};
你想做什么特别检查?在我的大多数测试中,我都会做一些模拟。在arange部分中,我定义了一些期望,在执行测试之后,我想断言,所有期望都被消耗掉了。