2015-08-28 145 views
2

我嘗試使用'ArquillianResteasyResource'在我的測試中注入WebTarget,但WebTarget的變量保持爲空。(Arquillian REST擴展)爲什麼webtarget在測試方法中爲null?

@Test 
@Consumes(MediaType.APPLICATION_JSON) 
public void testWithWT(@ArquillianResteasyResource WebTarget webTarget) { 
    ......} 

當我直接注入我的班級服務,一切工作正常!

@Test 
@Consumes(MediaType.APPLICATION_JSON) 
public void testWithWT(@ArquillianResteasyResource MyService sv) { 
......} 

我POM依賴關係:

<dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.12</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.eu.ingwar.tools</groupId> 
     <artifactId>arquillian-suite-extension</artifactId> 
     <version>1.1.2</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.arquillian.junit</groupId> 
     <artifactId>arquillian-junit-container</artifactId> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.wildfly.arquillian</groupId> 
     <artifactId>wildfly-arquillian-container-embedded</artifactId> 
     <version>1.0.1.Final</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.arquillian.extension</groupId> 
     <artifactId>arquillian-rest-client-api</artifactId> 
     <version>1.0.0.Alpha3</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.arquillian.extension</groupId> 
     <artifactId>arquillian-rest-client-impl-3x</artifactId> 
     <version>1.0.0.Alpha3</version> 
     <scope>test</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.wildfly</groupId> 
     <artifactId>wildfly-embedded</artifactId> 
     <version>9.0.0.Final</version> 
     <scope>test</scope> 
    </dependency> 

什麼是與WebTarget問題?

有什麼想法?

問候

+0

這是服務器端還是客戶端測試?正在使用哪個版本的RestEasy? – LightGuard

+0

這是一個服務器端測試。我使用3.0.11.Final版本的RestEasy。 – Seb

+0

當然看起來像一個bug。 – LightGuard

回答

2

這個答案可能會晚點,但如果你要在測試中注入webTarget,你必須在測試方法中添加@RunAsClient

@Test 
@Consumes(MediaType.APPLICATION_JSON) 
@RunAsClient 
public void testWithWT(@ArquillianResteasyResource WebTarget webTarget) {} 
+0

這是正確的,但這並沒有解決問題,我也出於某種原因得到WebTarget null – Lemmy4555

+0

這取決於你如何配置你的服務器以及如何啓動測試,在服務器端ou客戶端。如果你不提供更高的精度,我無法獲得更多信息。我的答案不需要downvote – Dimitri

+0

正確的答案應該顯示正確的pom.xml以正確地使用arquillian,然後正確的測試實現。 – Lemmy4555

相關問題