2016-08-06 3 views
0

소개자동화 된 테스트

내가 문자열의 배열이 같은 말, 데이터 집합을 가지고 :

data = [ 
    'Lorem ipsum {{keyword}} sit amet', 
    'Consectetur adipiscing {{different}} elit', 
    'Pellentesque vel {{another}}^option^ placerat nibh {{yetAnother}}', 
    ... 
] 

내 응용 프로그램이 문자열을 사용하고 상황에 따라하는 키워드를 {{대체 ...}} 다른 것으로.

키워드가 올바른지 확인하기 위해 모카 테스트를 실시하고 있으며, 테스트에서 '사전'을 검사합니다. 간단한 RegExp를 사용하면됩니다. 쉬운.

문제

는 지금, 나는 문제가 있고 나는 그것을 접근하는 방법을 아무 생각이 :이 같은 더 오타가없는 경우 테스트 할 : {{keyword} 또는 {keyword}} 또는 {{kyword^option^ 또는 다른 조합이 .. 이 경우 내 RegExp는 무력하다.

접근을 유지하는 것이 가장 효율적이고 쉬운 방법은 무엇입니까? (키워드를 정의하는 경계가 앞으로 변경 될 수 있으며, 일부 옵션을 추가해야 할 수도 있습니다)?

일부 추가 정보를

이러한 테스트에 대한 이유는 오타 앱 '이 자리로 인식하고 우승하지 않습니다 (예 : 중괄호 누락 등) "선언"에 발생하는 경우 행동. 그것은 실패하지 않거나 에러를 기록 할 것이고, 단지 일반적인 텍스트로 취급 할 것이므로, 이것을 일찍 발견하는 것이 중요합니다.

이 데이터는 앱의 중요한 부분이며 수동으로 생성되며 수백 개의 데이터가 있으므로 오타가 발생할 수 있으므로 테스트하는 것이 좋습니다.

지금까지

...

  • 이 실패 잡으려고 정규식 함께 내 시도를 합리적으로 효과적인 솔루션을 쉽게 구현할 수
  • :의 수는 {{수}를 동일} 경우 확인 {{or}}의 양쪽에 공백이 없는지 확인하십시오.

답변

0

사용할 수있는 라이브러리가 있습니다. Typo.js은 제가 사용했던 유일한 것입니다. 사전에 항목을 추가하려면 사용자 화 섹션을 참조하십시오. 기본 사용법은 다음과 같습니다.

var dictionary = new Typo("en-US"); 
var is_correct_spelling = dictionary.check("mispelled"); 
+0

감사합니다. 그래도 그게 도움이 될지 모르겠다. '키워드 경계'- {{..}}을 (를) 테스트하고 올바르게 설정되었는지 확인하고 싶습니다. 단어를 확인하는 것은 (경계가 정확하다는 점을 고려하면) 쉽습니다. – strah

0

이 문제는 불일치가있는 중괄호를 수정하여 해결할 수 있습니다. 원래는 비슷한 질문에 대한 대답으로이 정규식을 썼다

[\{]+([^}]+)[}]+ 

당신은 단지 {{$1}}로 경기를 교체 할 수 있습니다.

{} 중 하나 이상이 연속적으로 발생하는 한 계속 작동합니다.


나머지 문제 (사전 포함)에는 정규식 이외의 것을 사용하는 것이 좋습니다.이러한 유형의 작업을 수행하는 기본 정규식조차도 가치가 없습니다. 일반 문자열 작업으로는 동일한 양의 기능을 더 쉽게 수행 할 수 있기 때문입니다.