Java Spring EasyMock在调用模拟方法时变为null
首次同时使用EasyMock和Spring。 我有一门考试课: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
@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@之前的版本,而是被跳过的版本。