नहीं पहुँच सकते हैं मुझे लगता है कि मैं MockMvc
वर्ग इसका परीक्षण करना कोशिश कर रहा हूँ @RestController
साथ एनोटेट कुछ वर्गों की है। अंतिम-बिंदु एक वेब अनुप्रयोग से ठीक से जवाब है, लेकिन मैं निम्नलिखित त्रुटि जब (IntelliJ विचार से) परीक्षण चलाने के:स्प्रिंग बूट एकीकरण परीक्षणों application.properties फ़ाइल
java.lang.IllegalArgumentException: Could not resolve placeholder
'spring.data.rest.base-path' in string value "${spring.data.rest.base-path}/whatever"
यह कैसे application.properties
फ़ाइल लग रहा है जैसे:
spring.data.rest.base-path=/api
spring.profiles.active=dev
...
मेरे पास अतिरिक्त (अलग) गुणों के साथ application-dev.properties
नामक एक फ़ाइल भी है।
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
@WebIntegrationTest // Also tried: @WebAppConfiguration
@ActiveProfiles("dev")
// Also tried: @PropertySource("classpath:application.properties")
// Also tried: @TestPropertySource("classpath:application.properties")
public class MyRestControllerTest {
...
}
दूसरी ओर, यह कैसे बाकी नियंत्रकों लागू किया जाता है (जहां समस्याग्रस्त संपत्ति किया जा रहा है) है:
यह कैसे परीक्षण कक्षाओं एनोटेट है
@RestController
@RequestMapping("${spring.data.rest.base-path}/whatever")
public class MyRestController {
...
}
इस प्रकार एप्लिकेशन का मुख्य वर्ग इस तरह दिखता है:
@SpringBootApplication(scanBasePackages = {...})
@EnableJpaRepositories({...})
@EntityScan({...})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
और अंत में, यह (एक उप-समूह है) परियोजना की संरचना:
my-project
|_ src
|_ java
| |_ com.example.x
| |_ controller
| |_ MyRestController.java
|
|_ test
| |_ com.example.x
| |_ controller
| |_ MyRestControllerTest.java
|
|_ resources
|_ application.properties
|_ application-dev.properties
मैं वेब भर में समस्या के कई समाधान मिल गया है, लेकिन उनमें से कोई मेरे लिए काम करने के लिए लग रहा था।
मुझे नहीं पता था कि आपने इस संपत्ति का उपयोग किया था – Jaiwo99
क्षमा करें, आप सही हैं मैंने इसे स्पष्ट नहीं किया। इसका उपयोग सभी अंत-बिंदुओं के लिए आधार पथ को परिभाषित करने के लिए आरईएसटी नियंत्रकों में किया जा रहा है। वहां संपत्ति ठीक काम कर रही है - जैसा कि मैंने उल्लेख किया है, मैं उम्मीद के अनुसार ब्राउज़र से उन्हें एक्सेस कर सकता हूं।एकमात्र जगह जिसे इसे पढ़ा नहीं जा सकता है परीक्षण हैं। – DanielM
ऐसा लगता है जैसे इंटेलिज संसाधन संसाधन के रूप में/संसाधनों को पहचान नहीं पाया था। @PropertySource ('file: /path/to/application.properties') –