【发布时间】:2022-12-12 08:06:44
【问题描述】:
我正在尝试编写测试我的服务类 + 我的存储库的测试。但是当我运行测试时,它会出现以下错误。当我正常运行我的应用程序时,我没有得到它,只有当测试运行时。我不确定出了什么问题,也无法找到适合我问题的解决方案:
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name '[PATH].Services.TaskServiceTest': Unsatisfied dependency expressed through field 'taskService'; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.example.Workethic.Services.TaskService' available: expected at least 1 bean which
qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
任务服务
@Service
public class TaskService implements ITaskService {
@Autowired
private TaskRepository taskRepository;
public Task createTask(Task task) {
return taskRepository.save(task);
}
public List<Task> getAllTasks() {
return taskRepository.findAll();
}
public Optional<Task> getTaskById(long id) {
return taskRepository.findById(id);
}
}
application.properties(测试/资源/)
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:file:~/testdb
spring.h2.console.enabled=true
spring.h2.console.path=/console
测试
@DataJpaTest
class TaskServiceTest {
@Autowired
private TaskRepository taskRepository;
@Autowired
private TaskService taskService;
@Test
void createTask() {
Task task = new Task("bzbz", "some more bzbz");
Task returnedTask = taskService.createTask(task);
assert(returnedTask).equals(task);
}
}
任务.java
@Entity
@Table(name = "tasks")
public class Task {
@Id
@Getter
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Getter
@Setter
public String title;
@Getter
@Setter
private String body;
@Getter
@Setter
@GeneratedValue
private LocalDateTime created_at;
public Task(String title, String body) {
this.title = title;
this.body = body;
this.created_at = LocalDateTime.now();
}
public Task() {
}
}
【问题讨论】:
标签: java spring-boot