1
내 앱은 현재 세션에 대한 일부 정보를 localStorage
에 저장합니다. 따라서 모든 테스트 파일의 각 단일 테스트 전후에 localStorage
을 지우는 테스트가 필요합니다. 각 테스트 파일 대신 beforeEach
또는 afterEach
콜백을 전역으로 정의 할 수 있습니까?ember qunit 테스트를위한 전역 beforeEach/afterEach
내 앱은 현재 세션에 대한 일부 정보를 localStorage
에 저장합니다. 따라서 모든 테스트 파일의 각 단일 테스트 전후에 localStorage
을 지우는 테스트가 필요합니다. 각 테스트 파일 대신 beforeEach
또는 afterEach
콜백을 전역으로 정의 할 수 있습니까?ember qunit 테스트를위한 전역 beforeEach/afterEach
우리는 거의 같은 이유로 ember-qunit의 module
, moduleFor
및 moduleForComponent
을 감쌌다. 그리고 우리는 ember-qunit 대신에 래퍼를 가져 왔습니다.
또 다른 제안은 localStorage를 서비스로 래핑하는 것입니다. 이 서비스를 제외한 localStorage에 절대 액세스하지 마십시오. 따라서 테스트에서 모의 구현을 사용할 수 있습니다.
업데이트 :이 실현되는 방법
:
import { moduleFor, moduleForModel, test, only, setResolver } from 'ember-qunit';
import { moduleForComponent as qunitModuleForComponent } from 'ember-qunit';
function moduleForComponent(name, description, callbacks) {
//our implementation that wraps "qunitModuleForComponent"
//eg. init commonly used services vs.
}
export {
moduleFor,
moduleForComponent,
moduleForModel,
test,
only,
setResolver
};
장점 :
moduleForValidatableComponent
, moduleForLocalStorage
단점 : 생성
ember-qunit
를 가져 테스트한다. 개발자는 import 문을이 래퍼로 변경해야합니다. 때때로 잊혀지기도했습니다. (테스트가 실패하면 개발자는 import 문을 변경해야한다는 것을 기억합니다.)
서비스와 함께 localStorage를 포장하는 것에 대한 팁을 주셔서 감사합니다. 그러나 나는 아직도이 특징이 나의 현재의 특정한 필요 이상으로 유용하게 사용될 수 있다는 점을 감안할 때 그 ember-qunit의 방법을 포장하는 것에 대해 언급 한 것을 선호한다. 랩핑이 어떻게 작동하는지 자세히 설명해 주시겠습니까? – Ernesto
@Ernesto 업데이트 – ykaragol