Проблема
Я создал Junit для API тестирования, но я не могу сохранить данные в базе данных с помощью JUnit.
Может любой опытный человекподскажите, как решить эту проблему?
Решение
Я создал API-интерфейс put в Notes Controller и добавил JUnit для проверки того же самого.
Я также добавил NoteManager для бизнес-уровня и NoteDal для слоя DAO, а также использовал MongoTemplate для сохранения записей в коллекции базы данных mongo NoteInfo.
Ниже приведен код длятот же
@RunWith(SpringJUnit4ClassRunner.class)
public class NoteControllerTest {
private MockMvc mockMvc;
@InjectMocks
private NoteController noteController;
@Mock
private NoteManager noteManager;
@Mock
private RequestValidator requestValidator;
@Mock
private MessageSource messageSource;
private static final String DEFAULT_TITLE = "AAAAAAAAAA";
private static final String UPDATED_TITLE = "BBBBBBBBBB";
private static final String DEFAULT_CONTENT = "AAAAAAAAAA";
private static final String UPDATED_CONTENT = "BBBBBBBBBB";
private static final String DEFAULT_ASSOSCIATED_RESOURCE_ID = "AAAAAAAAAA";
private static final String UPDATED_ASSOSCIATED_RESOURCE_ID = "BBBBBBBBBB";
private static final ResourceType DEFAULT_ASSOSCIATED_RESOURCE = ResourceType.Fleet;
private static final ResourceType UPDATED_ASSOSCIATED_RESOURCE = ResourceType.Policy;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
noteController = new NoteController(noteManager, requestValidator, messageSource);
mockMvc = MockMvcBuilders.standaloneSetup(noteController).build();
}
private NoteInfo notes;
@Before
public void initTest() {
notes = createEntity();
}
/**
* Create an entity for this test.
* <p>
* This is a static method, as tests for other entities might also need it,
* if they test an entity which requires the current entity.
*/
public static NoteInfo createEntity() {
NoteInfo notes = new NoteInfo();
notes.setNoteTitle(DEFAULT_TITLE);
notes.setNoteContent(DEFAULT_CONTENT);
notes.setAttachedEntityId(DEFAULT_ASSOSCIATED_RESOURCE_ID);
notes.setAttachedEntity(DEFAULT_ASSOSCIATED_RESOURCE);
return notes;
}
@Test
public void updateNotes() throws Exception {
noteManager.addNote(notes, "123", "154");
int databaseSizeBeforeUpdate = noteManager.getAllNotes(new PageRequest(0, 200, SortOrder.DESC, "noteId"), "", "").size();
System.out.println(databaseSizeBeforeUpdate);//I am getting size as zero.
}
NoteManagerImpl
@Service
public class NoteManagerImpl implements NoteManager {
@Override
public NoteInfo addNote(NoteInfo noteInfo, String requestId, String referenceId) {
String methodName = "addNote";
LOG.debug(METHOD_ENTER, methodName);
ObjectId id = new ObjectId();
noteInfo.setNoteId(id.toString());
noteInfo.setCreatedOn(new Date());
noteInfo.setLastUpdatedOn(new Date());
noteInfo.setCreatedBy(referenceId);
NoteInfo savedNote = noteDAL.addNote(noteInfo, requestId, referenceId);
LOG.info("New Note added into the system: {}", noteInfo);
LOG.debug(METHOD_EXIT, methodName);
return savedNote;
}
NoteInfo
public class NoteInfo implements Serializable {
private static final long serialVersionUID = -5033417120019509685L;
@Id
private String noteId;
private String noteTitle;
private List<String> tags;
private String noteContent;
private String createdBy;
private ResourceType attachedEntity;
private String attachedEntityId;
@JsonFormat(pattern = DATE_JSON_FORMAT)
@DateTimeFormat(iso = ISO.DATE_TIME)
private Date createdOn;
@JsonFormat(pattern = DATE_JSON_FORMAT)
@DateTimeFormat(iso = ISO.DATE_TIME)
private Date lastUpdatedOn;