Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse plugin JSTestDriver的设置函数语法正确_Eclipse Plugin_Js Test Driver - Fatal编程技术网

Eclipse plugin JSTestDriver的设置函数语法正确

Eclipse plugin JSTestDriver的设置函数语法正确,eclipse-plugin,js-test-driver,Eclipse Plugin,Js Test Driver,EclipseJuno服务发行版1 工作单元测试的示例 InRangeTest = TestCase("InRangeTest"); InRangeTest.prototype.test01 = function() { var ir = new InRange(0.0, "<", Number.MAX_VALUE, "≤"); assertTrue(ir.isInRange(0.3)); }; 但是,要做不止一个测试,我认为我应该使用setUp。

EclipseJuno服务发行版1

工作单元测试的示例

InRangeTest = TestCase("InRangeTest");

InRangeTest.prototype.test01 = function()
{
    var ir = new InRange(0.0, "<", Number.MAX_VALUE, "≤");
    assertTrue(ir.isInRange(0.3));
};
但是,要做不止一个测试,我认为我应该使用
setUp
。除非我弄错了,
setUp
的优点是我不必在每个单元测试中实例化
var-ir
。所以,我尝试了以下方法

InRangeTest = TestCase("InRangeTest");

InRangeTest.prototype.setUp = function()
{
    var ir = new InRange(0.0, "<", Number.MAX_VALUE, "≤");
};

InRangeTest.prototype.test01 = function()
{
    assertTrue(ir.isInRange(0.3));
};
只是,我收到了错误消息

ReferenceError:未定义ir

var-ir
替换为
this.ir
无法正常工作

怎么了


提前感谢您的帮助。

如果您在两个功能中都使用this.ir,它应该可以工作:

InRangeTest = TestCase("InRangeTest");

InRangeTest.prototype.setUp = function()
{
    this.ir = new InRange(0.0, "<", Number.MAX_VALUE, "≤");
};

InRangeTest.prototype.test01 = function()
{
    assertTrue(this.ir.isInRange(0.3));
};

分类。谢谢问题的子文本是我试图掌握Javascript中的范围和可见性。如果我理解正确,“this”关键字将“ir”对象绑定到“InRangeTest”对象构造函数,这就是为什么单元测试需要查看“ir”对象的原因。否则,“ir”对象将仅在其父对象中可见,在本例中,该父对象是单元测试,而不是InRangeTest中所有单元测试的父对象。(抱歉,如果我把术语弄错了)。它可能会让人困惑,尤其是来自其他语言。在JS中,只有函数作用域。因此,如果定义
var x它将仅在该函数中可见。如果您访问一个变量,JS将进入所有函数作用域,直到它到达全局作用域(窗口),寻找该变量。在最初的示例中,它将查找窗口上定义的
ir
,但找不到它
setUp
test01
将作为TestCase对象上的方法调用,因此将
this
绑定到该对象。这就是你分享价值观的方式。另见