我要运行一个JUnit测试,我的春季启动项目我是这样的:
<div>
<div>{{title}}</div>
<div ng-include="body"></div>
</div>
服务:
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.br.suppcomm.ocp.entity.Login;
public interface LoginDao extends JpaRepository<Login, Long>{
...
}
}
测试:
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.br.suppcomm.ocp.dao.CompanyDAO;
import com.br.suppcomm.ocp.dao.LoginDao;
import com.br.suppcomm.ocp.entity.Login;
@Service
public class LoginService {
@Autowired LoginDao loginDao;
@Autowired CompanyDAO companyDao;
public void save(Login login) {
loginDao.save(login);
}
public void delete(Login login) {
loginDao.delete(login);
}
public Login findById(Login login) {
return loginDao.findOne(login.getLoginId());
}
public Login findByEmail(Login login) {
return loginDao.findByEmail(login.getEmail());
}
public Login FindByLogin(Login login) {
return loginDao.FindByLogin(login);
}
public List<Login> getAll() {
return loginDao.findAll();
}
public Login getUserAccessLoginPass(String login, String password) {
return loginDao.getUserAccessLoginPass(login, password);
}
public void update(Login login) {
loginDao.save(login);
}
当我运行此代码时,确实向我显示了以下错误。
package com.example;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import com.br.suppcomm.ocp.service.LoginService;
@RunWith(SpringRunner.class)
@SpringBootTest
public class OcpJpaApplicationTests {
@Autowired LoginService loginService;
@Test
public void contextLoads() {
}
}
创建名为'loginService'的bean时出错:不满意的依赖项 通过字段'loginDao'表示:没有类型为
的限定bean[com.br.suppcomm.ocp.dao.LoginDao]找到依赖项 [com.br.suppcomm.ocp.dao.LoginDao]:预计至少有1个bean 有资格作为此依赖项的autowire候选者。依赖 注释: {@ org.springframework.beans.factory.annotation.Autowired(所需=真)}; 嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有 找到[com.br.suppcomm.ocp.dao.LoginDao]类型的限定bean 依赖[com.br.suppcomm.ocp.dao.LoginDao]:预计至少为1 bean有资格作为此依赖项的autowire候选者。 依赖注释: {@ org.springframework.beans.factory.annotation.Autowired(所需=真)}
我不知道发生了什么!!请。
答案 0 :(得分:1)
请将classes
属性添加到@SpringBootTest
注释中,如下所示:
@SpringBootTest(classes = {Application.class})
这样就知道它必须进行你在Application
课程中指定的组件扫描等。
答案 1 :(得分:1)
添加@Repository你的界面
注释,以便它可以自动装配。
@Repository
public interface LoginDao extends JpaRepository<Login, Long>{
}
它会这样工作! 例外情况说SPring无法找到一个限定符,而是自动装配你需要对它进行类型化的东西。
答案 2 :(得分:0)
在LoginDao上添加@Repository
注释
答案 3 :(得分:0)
您需要将此注释添加到测试中:
@DataJpaTest
这将导致应用程序的Persistence切片被初始化。