次のモカテストでは予期しない結果が見られますが、その理由を理解できません。私はOrderオブジェクトに翻訳されるWebストアのオブジェクトをたくさん持っています。私は比較的単純な属性比較を多く実行しようとしているので、私はテストをループすることに決めました。for-loopでのMochaテストの副作用
import assert from 'assert'
import {expect} from 'chai'
...
const test_orders = [ <a bunch of objects> ]
function order_test(order, expected_values) {
describe(`Order#new ${expected_values.expected_package_type}`,() => {
...
})
}
for (var i = 0; i < test_orders.length; i++){
let translated_order = {}, order = {};
translated_order = new TranslateOrder(test_orders[i].untranslated_params)
order = new Order(translated_order)
order_test(order, test_orders[i]);
}
問題は、私は私が予期しない副作用を取得しています私に指示物体がtest_orders
に表示される順序に応じて異なるテスト結果を得ることです。私はどこから来ているのか分かりません。どんな助けでも大歓迎です!
私は疑うよう
translated_order = new TranslateOrder(test_orders[i].untranslated_params)
order = new Order(translated_order)
ビットは、犯人であれば、私は違った何をすべきか知っているのが大好きです。これは少し複雑ですが、ある文ではTranslateOrder
はJSON文字列からオブジェクトを作成し、Order
はReact app downstreamで使用するモデルオブジェクトです。
私は副作用の起源であったと考えてorder = new Order(Object.assign({}, translated_order))
しようとしましたが、結果は同じでした。