0
要隔離運行我所有的測試,我希望每次調用測試方法時都讀取POJO註釋,並刪除並重新創建一個MongoDb集合。問題是似乎只有在實例化MongoTemplate類時才創建索引。我該如何重新創建一個包含所有索引的集合?
這是完美的「正常」的應用,但在集成測試階段,我想有這樣的測試(對於實際應用可能太慢了...):
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = {
ApplicationConfig.class,
MongoConfiguration.class,
TestMongoConfiguration.class})
@ActiveProfiles("test")
public class BookServiceIntegrationTests {
private @Autowired TestHelper testHelper;
@Before
public void startup() {
testHelper.init(Book.class);
}
@After
public void cleanup() {
testHelper.drop(Book.class);
}
//test methods...
}
這是我非常簡單的POJO類:
@Document(collection = "books")
public class Book {
@Id
private ObjectId id;
@Indexed(unique = true)
private String isbn;
private String author;
private String title;
private String genre;
private List<String> tags;
private List<Comment> comments;
}
檢查春季數據源的MongoDB(1.0.1.RELEASE)只見那類MongoPersistentEntityIndexCreator正在讀取POJO的註解以及確保總彙索引。這個類僅在MongoTemplate構造函數中被調用。
您是否認爲我可以在我的測試中找到更好的方法來模擬回滾事務?
感謝, 卡羅
謝謝。這將是第二步:在測試套件執行之前加載測試數據。我將嘗試將這些命令添加到我的gradle腳本中。 – 2012-03-17 17:33:15