【发布时间】:2021-05-04 06:12:08
【问题描述】:
[服务]
@Service
@RequiredArgsConstructor
public class RecordService {
private final RecordRepository recordRepository;
@Transactional
public void bulkUpdateRecord(BulkUpdateRecordRequest[] requestDto) {
Map<Long, BulkUpdateRecordRequest> recordsMap = Arrays.stream(requestDto)
.collect(Collectors.toMap(BulkUpdateRecordRequest::getId, record -> record));
List<Record> records = recordRepository.findAllById(recordsMap.keySet());
System.out.println("records = " + records);
}
}
[存储库]
public interface RecordRepository extends JpaRepository<Record, Long>, RecordCustomRepository {
}
[测试代码]
class RecordServiceTest extends Specification {
RecordRepository recordMockRepo = Mock()
RecordService recordService = new RecordService(recordMockRepo)
def "bulkUpdateRecord"() {
given:
def request = new BulkUpdateRecordRequest()
request.setId(1)
request.setCount(20)
request.setWeight(100)
request.setWeightType(WeightType.KG)
def record = Record.builder()
.id(1L)
.weightType(request.getWeightType())
.weight(request.getWeight())
.count(request.getCount())
.recordType(RecordType.PERSONAL)
.exerciseName("deadlift")
.exerciseType(ExerciseType.BACK)
.build()
when:
recordService.bulkUpdateRecord(request)
then:
recordMockRepo.findAllById(_ as List) >> [record]
}
}
你知道我嘲笑了返回 [record] 的 findAllById() 方法
但它总是返回 null。
但是,查找单个实体的方法(如 findBy~())不会出现此问题。
我的代码有问题吗?
谢谢。
【问题讨论】:
标签: spring-boot spock