我已经创建了一个简单的单元测试,但是IntelliJ错误地将它突出显示为红色。将其标记为错误
没有豆子?
如你所见,它通过了测试?所以它一定是自动连接的?
我已经创建了一个简单的单元测试,但是IntelliJ错误地将它突出显示为红色。将其标记为错误
没有豆子?
如你所见,它通过了测试?所以它一定是自动连接的?
当前回答
看起来您试图在没有实际激活WebEnvironment的情况下运行测试。
解决方案非常简单,只需添加带有必需配置的@SpringBootTest注释。
这里有一个例子:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) // Run the server for testing.
public class mockTest {
@Autowired
// Should work now
}
其他回答
如果你不想对你的代码做任何改变,只是为了让你的IDE满意。我通过将所有组件添加到Spring facet解决了这个问题。
创建一个名为“服务,处理器和路由器”的组或任何你喜欢的名称; 删除并重新创建“Spring Application Context”,使用之前创建的组作为父组。
我的IntelliJ IDEA Ultimate版本(2016.3.4 Build 163)似乎支持这一点。诀窍在于您需要启用Spring Data插件。
在最新的IntelliJ中,这似乎仍然是一个bug,与可能的缓存问题有关?
如果您将@Repository注释添加为上面提到的mk321,保存,然后删除注释并再次保存,这将解决问题。
在类级别使用@EnableAutoConfiguration注释和@Component。它将解决这个问题。
例如:
@Component
@EnableAutoConfiguration
public class ItemDataInitializer {
@Autowired
private ItemReactiveRepository itemReactiveRepository;
@Autowired
private MongoOperations mongoOperations;
}
IntelliJ IDEA Ultimate
将您的主类添加到IntelliJ Spring应用程序上下文中,例如Application.java
文件->项目结构..
左边: 项目设置->模块
右边:在你的包结构中找到 Spring并添加+ Application.java