我正在尝试从我的服务层对crud方法进行单元测试,我已经写了正确的代码(我认为),但是AssertTrue给了我与我预期相反的结果。(java.lang.AssertionError:)
我的测试代码如下:
学生服务测试
@RunWith(SpringJUnit4ClassRunner.class)
@ActiveProfiles("test")
@SpringBootTest
public class StudentServiceTest {
private static final String STUDENT_NAME = "Henkie";
@Autowired
private StudentServiceImpl studentService;
@Autowired
private StudentRepository studentRepository;
@Test
public void createStudent(){
//arrange
Student student = new Student();
student.setStudentName(STUDENT_NAME);
studentService.save(student);
List<Student> students = studentService.findAll();
assertNotNull(students);
assertTrue("created a student" ,students.contains(student));
}
学生服务
public interface StudentService {
List<Student> findAll();
Student save(Student student);
Optional<Student> findById(Long id);
void deleteById(Long id);
Iterable<Student> findAllIteratable();
}
学生服务
@Service
@RequiredArgsConstructor
public class StudentServiceImpl implements StudentService {
@Autowired
private final StudentRepository studentRepository;
public List<Student> findAll() {
return Lists.newArrayList(studentRepository.findAll());
}
public Student save(Student student) {
return studentRepository.save(student);
}
public Optional<Student> findById(Long id) {
return studentRepository.findById(id);
}
public void deleteById(Long id) {
studentRepository.deleteById(id);
}
}
学生资源库
public interface StudentRepository extends CrudRepository<Student, Long> {
}
调试后,可以看到该学生正在被成功创建,并被添加到列表中。但正如可以看到的那样Student@10172,在学生列表中,将其保存在Student@10482。列表中的所有先前条目都是先前测试尝试的结果。
遗憾的是,我不能发表评论,因为我没有代表,但是…如果你有学生,你把它添加到持久化对象中,你读回它,它就出现在集合中。那么唯一真正要问的问题是,你会在你的学生类中覆盖哈希代码和等于吗?
否则包含将查找相同的对象,而不是学生的相同表示。
我已经开始考虑在我的项目中围绕一些业务逻辑添加一些单元测试。 我想测试的第一个方法是服务层中的一个方法,它返回给定节点的子节点列表。 该方法如下所示: 我想象这样的测试方法是提供一个假树结构,然后测试提供节点是否返回正确的子节点。 ssdsContext是一个对象上下文。 我已经看到可以为提取和接口如何模拟ObjectContext或ObjectQuery 我还读到,as Entity Frame
因为save是一个void方法。 有人知道如何修复这个单元测试吗?
在我的项目中,我在进行单元测试时遇到了问题。一个问题是,仅仅进行联调就可以更快地编写,并且还可以测试组件是否真正协同工作。单元测试新颖的“算法”之类的似乎要容易得多。单元测试服务类感觉是错误和无用的。 我使用mockito来模拟spring数据存储库(以及DB访问)。问题是,如果我告诉模拟存储库在方法调用getById时返回实体A,它显然会返回实体A,服务也会返回实体A。是的,该服务做了一些额外的
我不熟悉单元测试。参考google之后,我创建了一个测试类来测试我的控制器,如下所示: 我有以下控制器和服务类: 当我调试单元测试时,控制器中的p对象为null。我的状态是200,但不是预期的JSON响应 我错过了什么?
我在Java写了一些简单的代码,该方法应该连接到网站并返回BufferedReader。 当我在我的PC上使用它时,它可以正常工作,但当我将. jar文件放在服务器上时,我会收到这个错误: 问题很奇怪,因为每次都不会抛出异常,有时一切都很好,程序工作正常。 有人有什么想法吗?
本文向大家介绍AngularJS 单元测试服务,包括了AngularJS 单元测试服务的使用技巧和注意事项,需要的朋友参考一下 示例 服务编号 考试 跑!