我正在编写用于测试以下代码的茉莉花测试代码
validatePage : function(siteIndex) {
var errorList = '';
var siteVal = solution.CommonObjects.theSolution.sites[siteIndex];
}
对siteval值的进一步操纵
我写了以下一段代码
describe("order handoff site test suites",function(){
beforeEach(function(){
var solution =
{
CommonObjects:
{
theSolution:
{
sites:
[
{
floor:""
}
]
}
}
} });
var ordrHandoffSites = new orderHandoffSite();
it("expect true to be true",function(){
console.log("AHV55" + typeof(solution.CommonObjects.theSolution.sites [0].floor));
ordrHandoffSites.validatePage(1);
})
此代码使用require.js,因此ordrHandoffSites只是包含validatepage代码的文件的对象 当我检查控制台日志时,它显示了一个字符串值,但代码正在打破
var siteVal = solution.CommonObjects.theSolution.sites[siteIndex];
说不能阅读财产' floor'未定义的
答案 0 :(得分:0)
<强>观察:强>
solution
对象的范围仅限于beforeEach
函数,因此返回undefined
错误。我嘲笑require.js
&amp;使用虚拟对象代替
ordrHandoffSites
但它(使用require.js)应该主要表现相同。在action here
var solution;
var testObj = {
validatePage: function(siteIndex) {
var errorList = '';
var siteVal = solution.CommonObjects.theSolution.sites[siteIndex];
}
};
describe("order handoff site test suites", function() {
beforeEach(function() {
solution = {
CommonObjects: {
theSolution: {
sites: [{
floor: ""
}]
}
}
}
});
it("expect true to be true", function() {
console.log("AHV55==> " + typeof(solution.CommonObjects.theSolution.sites[0].floor));
testObj.validatePage(1);
expect(true).toBe(true);
});
});