2016-08-24 3 views
1

몇 가지 편의 속성 할당을 위해 데코레이터로 typescript를 기반으로 애플리케이션을 만들었으며 어떻게 단위 테스트를 작성하는지 궁금합니다. 장식부터 내가 가진 스펙 클래스에서 유닛 테스팅 타이프 스크립트 데코레이터

export function APIUrl() { 
     return function (target: any, key: string) { 
      let _value = target[key]; 

      function getter() { 
      return _value; 
      } 

      function setter(newValue) { 
      _value = getApiURL(); 
      } 

      if (delete target[key]) { 
      Object.defineProperty(target, key, { 
       get: getter, 
       set: setter 
      }); 
      } 
     }; 
    } 

,

it("should return url string",()=> { 
    @APIUrl(); 
    let baseURL:string; 

    expect(baseURL typeOf string).toBe(true) 
}) 

답변

0

난 그냥 다른 기능처럼 그들을 테스트하기 위해 제안하는 것과 기능입니다. 그리고 당신은 정말 클래스/멤버로 장식을 사용하는 방법을 보여줍니다 하나 개의 테스트/... 여기

는 테스트의 모습 수있는 예입니다 추가해야하는 경우에만 :

import test from 'ava'; 
import { APIUrl } from './path'; 

const decorate = new APIUrl(); 

test.before(t => { 
    let obj = { someProp: 'foo' }; 
    decorate(obj, 'someProp'); 
    t.context.foo = obj; 
}); 

test('should return original value', t => { 
    t.is(t.context.foo.someProp, 'foo'); 
}); 
+0

예제를 위의 경우 매개 변수를 사용하고 함수를 반환하는 위치는? – Rjk

+0

나는 아주 따라갈 수 없습니까? 위의 데코레이터에 대한 테스트를 보시겠습니까? TypeScript는 변수의 데코레이터를 지원하지 않기 때문에 테스트 사양이 작동하지 않습니다. 이는 공식 초안 스펙을 준수합니다. –

+0

안녕하세요 @ sebastian-sebald, 예 위의 데코레이터에 대한 테스트를보고 싶습니다. 내 사양이 작동하지 않는다는 것을 알고 있습니다. – Rjk