在Jasmine测试字符串__proto__中,它不等于String.prototype

时间:2015-01-21 20:09:55

标签: javascript jasmine

如果我有这样的测试,那应该通过 expect("test".__proto__ === String.prototype).toBe(true) 它失败并显示错误Expected false to be true.

我测试这个的原因是因为在我的代码中,jquery扩展将格式添加到String.prototype。但是,当我去测试时 "my test {0}".format(1)我得到" undefined不是函数",并且仔细查看Jasmine测试中的所有字符串,不要将String.prototype作为其原型。

--- --- EDIT 经过进一步测试后,我发现如果我有:

it("test string prototype", function() {
   var test_string = "test"
   expect(test_string.__proto__ === String.prototype).toBe(true)
   with (frameContext) {
      expect(test_string.__proto__ === String.prototype).toBe(true)
   }
});

第一个预期通过,但第二个没有。

--- --- EDIT

expect(typeof String.prototype.format !== "undefined").toBe(true)
expect(test_string.__proto__ === String.prototype).toBe(true)
with (frameContext) {
    expect(typeof String.prototype.format !== "undefined").toBe(true)
    expect(test_string.__proto__ === String.prototype).toBe(true)
}

首先期望失败,第二次预期通过

在with中,首先是期望传递,第二次是失败。

0 个答案:

没有答案