Пожалуйста, знайте, что я подробно исследовал этот вопрос как на этом веб-сайте, так и в других местах, но предлагаемые решения не сработали для меня.Spring RESTful (Gradle): @Полученные результаты в NullPointerException
Я могу запустить приложение Spring без проблем (bootRun), поэтому я предполагаю, что это только проблема, связанная с jUnit. Когда я пытаюсь запустить тест Gradle или JUnit в классе SearchControllerUnitTest, я получаю исключение NullPointerException.
Может ли кто-нибудь указать, где моя конфигурация неверна?
Спасибо!
SearchControllerUnitTest.java
@Category(UnitTest.class)
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = AppConfig.class)
public class SearchControllerUnitTest extends UnitTest {
private MockMvc mockMvc;
@Override
@Before
public void setUp() {
super.setUp();
mockMvc = MockMvcBuilders.standaloneSetup(new SearchController()).build();
}
@Test
public void getProductTest() throws Exception {
. . .
}
SearchController.java
@RestController
public class SearchController {
public static final Logger log = LoggerFactory.getLogger(SearchController.class);
@Autowired
Product product; // <<< autowiring not working in jUnit only
@Autowired
ProductService productService; // <<< autowiring not working in jUnit only
@RequestMapping(value = "/search", method = RequestMethod.GET, produces = "application/json")
public ResponseEntity<Product> getProduct(@RequestParam(value = "name", required = true) String name) {
if (productService == null) {
log.info("productService is null!!");
}
. . .
product = productService.getProduct(name); // <<<< NPE here
}
ProductService.java
public interface ProductService {
. . .
public Product getProduct(String productName);
. . .
}
ProductServiceImpl.java
@Service
public class ProductServiceImpl implements ProductService {
public Product getProduct(String productName){
. . .
}
}
Исключение:
Caused by: java.lang.NullPointerException
at com.somepckagename.controller.SearchController.getProduct(SearchController.java:36)
У вас есть определенная проводка для тестового контекста? – Makoto