我已经创建了一个简单的单元测试,但是IntelliJ错误地将它突出显示为红色。将其标记为错误
没有豆子?
如你所见,它通过了测试?所以它一定是自动连接的?
我已经创建了一个简单的单元测试,但是IntelliJ错误地将它突出显示为红色。将其标记为错误
没有豆子?
如你所见,它通过了测试?所以它一定是自动连接的?
当前回答
在最新的IntelliJ中,这似乎仍然是一个bug,与可能的缓存问题有关?
如果您将@Repository注释添加为上面提到的mk321,保存,然后删除注释并再次保存,这将解决问题。
其他回答
最后一个重要的信息——添加ComponentScan,这样应用程序就知道它需要连接的东西。这与这个问题无关。但是,如果根本没有执行@autowiring,那么这可能是您的解决方案。
@Configuration
@ComponentScan(basePackages = {
"some_package",
})
public class someService {
有时——就我而言——原因是一个错误的输入。我不小心导入了
import org.jvnet.hk2.annotations.Service
而不是
import org.springframework.stereotype.Service
盲目地接受Idea建议的导入中的第一个选择。第一次发生的时候我花了几分钟:-)
我只能使用@EnableAutoConfiguration来解决它,但是这个错误没有功能上的影响。
这个问题可以通过在spring引导应用程序主类上放置@EnableAutoConfiguration来解决。
看起来您试图在没有实际激活WebEnvironment的情况下运行测试。
解决方案非常简单,只需添加带有必需配置的@SpringBootTest注释。
这里有一个例子:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) // Run the server for testing.
public class mockTest {
@Autowired
// Should work now
}