다음 Mocha 테스트에서 예기치 않은 결과가 표시됩니다. 그 이유를 알 수 없습니다. Order 객체로 번역 된 객체를 웹 저장소에서 가져 왔습니다. 상대적으로 간단한 애트리뷰트 비교를 실행하려고 시도하고 있으므로 테스트를 반복하기로했습니다. for 루프에서의 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에서 사용하는 모델 객체입니다.
나는 부작용의 근원이었던 생각을 시도했지만 결과는 같았다.