2016-11-15 9 views
0

동일한 페이지에서 다른 테스트의 결과를 기반으로 테이블의 baseUrl을 설정하고 싶습니다. Fitnesse 's 문서 (및 기타 리소스)의 다음 페이지를 따라 보았습니다. smartrics blog post, fitnesse symbols page, 하지만 제대로 작동하지 않는 것 같습니다. 지금까지 나는 다음과 같은 구문으로 시도하지했습니다FitnessF 기호를 사용하여 RestFixture에 baseUrl을 주입하십시오.

| Fit Rest Fixture | %emailLink% | | GET |/| 200 |Content-Type: text/plain|Email Verified|

| Fit Rest Fixture | emailLink= | | GET |/| 200 |Content-Type: text/plain|Email Verified|

| Fit Rest Fixture | $emailLink | | GET |/| 200 |Content-Type: text/plain|Email Verified|

그러나 그 일의 아무도. emailLink 심볼은 다른 테이블에서 테스트 중이므로 null이 아니지만 RestFixture에 주입 할 수없는 것으로 알고 있습니다. 심볼 이름이 해당 값에 대해 확인되지 않았 음을 나타내는 IllegalArgumentException이 항상 발생합니다. java.lang.IllegalArgumentException: Malformed base URL: $emailLink

어떤 도움을 주시면 감사하겠습니다.

+0

테스트 시스템으로 Fit (슬림이 아닌)을 사용하고 있습니다. 이 올바른지? 슬림 모드로 전환 할 수 있습니까 (사용 가능한 모든 조명기에 영향을 미칩니다)? Fit을 사용하여 원하는 작업을 수행하는 방법을 알지 못합니다. –

답변

0

FitRestFixture 코드를 살펴보고 나에게 도움이되는 것을 생각해 냈습니다. 이 보인다 내가 상자 밖으로 지원되지 않습니다 찾고 있었다, 그러나 (이 방법은 깨끗한 아니지만) 쉽게 달성 할 수있는 기능을 간단한 모드 다음과 같은 : 나는 당신을 믿지

/** 
* @return Process args ({@link fit.Fixture}) for Fit runner to extract the 
* baseUrl of each Rest request, first parameter of each RestFixture 
* table. 
*/ 
protected String getBaseUrlFromArgs() { 
    String arg = null; 
    if (args.length > 0) { 
     arg = args[0]; 
     /* mod starts here */ 
     if (isSymbol(arg)) { 
      String symbolName = stripSymbolNotation(arg); 
      arg = resolveSymbol(symbolName); 
     } 
     /* mod ends here */ 
    } 
    return arg; 
} 

private boolean isSymbol(String arg) { 
    // notice that I've used the '<<' notation convention to extract the 
    // the value from a symbol, while in RestFixture the conventional 
    // notation is %symbolName% 
    return null != arg && arg.startsWith("<<"); 
} 

private String stripSymbolNotation(String arg) { 
    return arg.substring(2); 
} 

private String resolveSymbol(String arg) { 
    String symbolValue = (String) Fixture.getSymbol(arg); 
    LOG.warn(String.format("resolved symbol %s to value %s", arg, symbolValue)); 
    return symbolValue; 
} 
0

슬림하고 있습니다?

http://www.fitnesse.org/FitNesse.UserGuide.WritingAcceptanceTests.SliM.SymbolsInTables

내가 특별히 나머지 비품을이 방법으로 슬림과 함께 몇 시간을 문자를 사용하지만,하지 않았습니다.

+0

안녕하세요, 귀하의 답변 주셔서 감사합니다. 불행히도 나는 이미 그 구문을 시도해 본다. (질문의 세번째 예를 보라) 작동하지 않는다. –

+0

다른 테이블에서 테스트하면 테스트 결과 페이지의 출력은 어떻게됩니까? 의사 결정 테이블에서 값을 테스트하면 테스트 결과에서 평가 된 결과를 볼 수 있어야합니다. –

+0

Fixture '* Fit * Rest Fixture'의 이름이 주어지면 그의 테스트에서 Fit을 사용하고 있는데, Slim 접근 방식이 작동하지 않는 이유를 설명합니다. –