Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring EasyMock在调用模拟方法时变为null_Java_Spring_Easymock - Fatal编程技术网

Java Spring EasyMock在调用模拟方法时变为null

Java Spring EasyMock在调用模拟方法时变为null,java,spring,easymock,Java,Spring,Easymock,首次同时使用EasyMock和Spring。 我有一门考试课: @RunWith(EasyMockRunner.class) public class ProjectServiceTest { @Mock private ProjectRepository projectRepositoryMock; @TestSubject private ProjectService service new ProjectService(); @Before

首次同时使用EasyMock和Spring。 我有一门考试课:

@RunWith(EasyMockRunner.class)
public class ProjectServiceTest {

    @Mock
    private ProjectRepository projectRepositoryMock;

    @TestSubject
    private ProjectService service new ProjectService();

    @Before
    public void setUp() throws Exception {
        Project project = new Project("Project");

        EasyMock.expect(projectRepositoryMock.findOne(1)).andReturn(project);
    }

    @After
    public void tearDown() throws Exception {
    }

    @Test
    public void getProjectById() throws Exception {
      System.out.println(this.service.getProjectById(1);
    }
这是我的项目实体:

@Entity
@Table(name = "Project")
public class Project {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Integer id;

    private String projectName;


    public Project(){

    }

    public Project(String projectName) {
        this.projectNaam = projectName;
    }
它也有通常的接受者和接受者。 我的存储库只是扩展了JpaRepository。 这是我的项目服务课

@Service
public class ProjectService {

    @Autowired
    private ProjectRepository projectRepository;

    public ProjectService(){

    }

    public Project getProjectById(Integer id){
        return this.projectRepository.findOne(id);
    }

    public void saveProject(Project project){
        this.projectRepository.save(project);
    }

    public void deleteProject(Integer id){
        this.projectRepository.delete(id);
    }

    public List<Project> getAllProjects(){
        return this.projectRepository.findAll();
    }

    public Project findProjectById(Integer id){
        return this.projectRepository.findOne(id);
    }
}
我试过了

System.out.println(this.projectRepositoryMock.findOne(1));

但这也会返回null。

您需要将模拟置于重播模式。试一试

@Before
public void setUp() throws Exception {
    Project project = new Project("Project");

    EasyMock.expect(projectRepositoryMock.findOne(1)).andReturn(project);
    EasyMock.replay(projectRepositoryMock);
}

您需要将模拟置于重播模式。试一试

@Before
public void setUp() throws Exception {
    Project project = new Project("Project");

    EasyMock.expect(projectRepositoryMock.findOne(1)).andReturn(project);
    EasyMock.replay(projectRepositoryMock);
}

您是否也验证了是否执行了之前的
?可能它不是junit
@之前的
并被跳过。您是否也验证了
@之前的
是否被执行?也许它不是junit
@之前的版本,而是被跳过的版本。