如果我有这样的测试,那应该通过
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中,首先是期望传递,第二次是失败。