首页 > 解决方案 > 当我运行 Junit 测试时

问题描述

Java 是一种为多个平台生成软件的编程语言。当程序员编写 Java 应用程序时,编译后的代码(称为字节码)运行在大多数操作系统(OS)上,包括 Windows、Linux 和 Mac OS?

package org.com.support.boot.org.com.support.boot;

import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertEquals;
import org.com.support.boot.models.Student;
import org.com.support.boot.repos.StudentRepository;
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.SpringJUnit4ClassRunner;

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class SpringdatajpaApplicationTest {

    @Autowired
    private StudentRepository repository;

    @Test
    public void testSaveStudent() {

        Student newStudent = new Student();
        newStudent.setId(1);
        newStudent.setName("Mirza");
        newStudent.setTestScore(23);

        repository.save(newStudent);

        Student student = repository.findById(1);

        assertNotNull(student);
    }

    @Test
    public void testUpdateStudent() {

        Student updateStudent = new Student();
        updateStudent.setId(1);
        updateStudent.setName("Mirza");
        updateStudent.setTestScore(51);

        repository.save(updateStudent);

        Student student = repository.findById(1);

        assertEquals(51, student.getTestScore());
    }

    @Test
    public void testDeletStudent() {

        Student deleteStudent = new Student();
        deleteStudent.setId(1);
        deleteStudent.setName("Mirza");
        deleteStudent.setTestScore(51);

        repository.delete(deleteStudent);
        Student student = repository.findById(1);
        assertNull(student);
    }

}

标签: java

解决方案


编译后的字节码将在任何版本足够高的 JVM 上运行,而不管运行它的平台如何。

但是请注意,代码本身可能会对平台做出假设(例如,代码可能假设您有一个c:驱动器,这仅在 Windows 中是正确的)JVM 不会神奇地为您修复这些假设。


推荐阅读