为什么我的全局变量没有在Test :: Class中初始化?

罗伯特

这是一个使用一些全局变量/常量的简单测试用例:

use strict;
use warnings;
use base 'Test::Class';
use Test::More;

__PACKAGE__->runtests() unless caller;

my $ONE = "1";
my $TWO;

sub setup : Test(setup) {
    $TWO = "2";
}

sub test_me : Tests {
    is("1", $ONE);
    is("2", $TWO);
}

当我运行它时,它由于$ONE未初始化而失败

robert@saaz:~$ prove test.t 
test.t .. 1/? 
#   Failed test 'test me'
#   at test.t line 16.
#   (in main->test_me)
#          got: '1'
#     expected: undef
# Looks like you failed 1 test of 2.
test.t .. Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/2 subtests 

Test Summary Report
-------------------
test.t (Wstat: 256 Tests: 2 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
Files=1, Tests=2,  0 wallclock secs ( 0.02 usr  0.00 sys +  0.05 cusr  0.00 csys =  0.07 CPU)
Result: FAIL

这是为什么?显然已经定义了变量(或者由于会导致错误use strict;),但是似乎只有安装函数中的初始化代码在运行。

如何在Test::Class测试中使用常量

池上

您的分配确实会执行,但是只有在您完成测试后才能执行。这是因为您__PACKAGE__->runtests()在分配之前运行测试(调用)。

此外,正式不允许您在执行变量之前使用变量my您的安排是文档唯一将其称为未定义行为的内容(这意味着可能会导致任何行为)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Java

为什么在Java中没有像C ++这样的全局变量?

来自分类Java

为什么Java中没有全局变量?

来自分类Dev

进行全局变量初始化

来自分类Dev

为什么C和C ++编译器将显式初始化和默认初始化的全局变量放在不同的段中?

来自分类Dev

为什么在C和C ++之间初始化全局变量有这种区别?

来自分类Dev

在C ++中哪里初始化Class的成员变量

来自分类Dev

为什么我的变量没有初始化值?

来自分类Dev

我的JavaScript函数中没有看到全局变量

来自分类Dev

为什么不能使用constexpr全局变量初始化constexpr引用类型?

来自分类Dev

如何初始化全局变量

来自分类Dev

我可以重新初始化全局变量以覆盖其在C中的值吗?

来自分类Dev

为什么我的写方法没有初始化?

来自分类Dev

为什么我的变量没有在此代码中初始化?

来自分类Dev

JavaScript:在函数中初始化全局变量

来自分类Dev

初始化全局变量.Net

来自分类Dev

为什么我无法在jQuery中初始化变量?

来自分类Dev

为什么我的代码块实例变量没有初始化并打印出“ NSGlobalBlock”?

来自分类Dev

Python:无法从初始化文件导入在setUp方法中初始化的全局变量

来自分类Dev

用C中的整数广播全局变量指针初始化全局变量

来自分类Dev

为什么我的变量没有初始化?

来自分类Dev

全局变量初始化中的数学运算,机器做什么?

来自分类Dev

为什么我不能访问全局变量中的值

来自分类Dev

初始化 cuda 全局变量

来自分类Dev

为什么可以使用内联汇编代码的结果初始化全局变量?

来自分类Dev

为什么函数内部的变量没有初始化?

来自分类Dev

为什么变量没有初始化?

来自分类Dev

为什么私有变量没有在 dart 中初始化?

来自分类Dev

C 头文件中的全局变量初始化

来自分类Dev

为什么我的状态没有在 Flutter Consumer/Provider 中初始化?

Related 相关文章

  1. 1

    为什么在Java中没有像C ++这样的全局变量?

  2. 2

    为什么Java中没有全局变量?

  3. 3

    进行全局变量初始化

  4. 4

    为什么C和C ++编译器将显式初始化和默认初始化的全局变量放在不同的段中?

  5. 5

    为什么在C和C ++之间初始化全局变量有这种区别?

  6. 6

    在C ++中哪里初始化Class的成员变量

  7. 7

    为什么我的变量没有初始化值?

  8. 8

    我的JavaScript函数中没有看到全局变量

  9. 9

    为什么不能使用constexpr全局变量初始化constexpr引用类型?

  10. 10

    如何初始化全局变量

  11. 11

    我可以重新初始化全局变量以覆盖其在C中的值吗?

  12. 12

    为什么我的写方法没有初始化?

  13. 13

    为什么我的变量没有在此代码中初始化?

  14. 14

    JavaScript:在函数中初始化全局变量

  15. 15

    初始化全局变量.Net

  16. 16

    为什么我无法在jQuery中初始化变量?

  17. 17

    为什么我的代码块实例变量没有初始化并打印出“ NSGlobalBlock”?

  18. 18

    Python:无法从初始化文件导入在setUp方法中初始化的全局变量

  19. 19

    用C中的整数广播全局变量指针初始化全局变量

  20. 20

    为什么我的变量没有初始化?

  21. 21

    全局变量初始化中的数学运算,机器做什么?

  22. 22

    为什么我不能访问全局变量中的值

  23. 23

    初始化 cuda 全局变量

  24. 24

    为什么可以使用内联汇编代码的结果初始化全局变量?

  25. 25

    为什么函数内部的变量没有初始化?

  26. 26

    为什么变量没有初始化?

  27. 27

    为什么私有变量没有在 dart 中初始化?

  28. 28

    C 头文件中的全局变量初始化

  29. 29

    为什么我的状态没有在 Flutter Consumer/Provider 中初始化?

热门标签

归档