私は変数のスコープに問題があります。下のコードはJasmineとJavaScriptの組み合わせである分度器にあります。私が持っている問題は、householdLabelText
の文字列値を使用して、それをhouseholdArray[i]
の値と比較しようとしているということです。Promise、.then()変数は定義されていないと言い続けます
ただし、これを行うたびにhouseholdArray[i]
が不定に戻ってきます。私はこれがhouseholdArray
が範囲外のものになるからだと思います。私はプロミス/コールバックの仕組みが正確には専門家ではないので、間違っているかもしれません。誰でも私に範囲内のhouseholdArray
を維持するためのいくつかのヒントを与えることができれば、私はそれを感謝します。
it((testNumber += 1) + '---' + suiteName + '---' +
'It should dispaly the appropraite text for the rating factors.',
function() {
var householdArray = ['ACCIDENTS', 'VIOLATIONS', 'DRIVERS', 'VEHICLES', 'TENURE'];
element.all(by.repeater('item in vm.policyDetails.householdDetails')).then(function(householdDetails) {
for(var i = 0; i < householdDetails.length; i++)
{
householdDetails[i].element(by.binding('item.label')).getText().then(function(householdLabelText) {
console.log(householdArray[i]);
expect(householdLabelText).toEqual(householdArray[i]); // householdArray[i] is undefined
});
}
});
});
ステップ・デバッガーの使用方法を学ぶ必要があるため、このトピックをオフトピックとしてクローズすることにしました。ステップ・デバッガーはあなたの友人です! –
問題を引き起こすコードの例([codepen](codepen.io))を投稿できますか? – Trevor
@JarrodRoberson私にはIDEやステップデバッガを使用する方法がありません。分度器のためのステップデバッガをお勧めしたら、私はそれを使用します。 – DrZoo