나는 (내가 말했듯이 이것은 내가 한 일이지만, 누군가가 더 좋은 아이디어를 가지고 있음을 의미한다) 다양한 단계에서 여러 가지 일을 할 수있는 일종의 MongoTestHelper를 작성한다. 너의 시험들.
테스트가 실행되기 전에 테스트 mongod 인스턴스가 실행 중인지 확인하고, 그렇지 않으면 좋아하는 테스트 - 몽고 포트에서 부팅합니다. 실제로 새로운 mongod 인스턴스를 부팅하고 부팅하는 것이 비용이 많이 들지는 않으며 이미 해당 포트가 사용 중일 때 실패하게 만듭니다. 그러나 이것은 Windows에서 매우 다르므로 포트가 열려 있는지 확인해야 할 수도 있습니다.
테스트하기 전에 필요한 모든 종류의 모든 테스트 된 컬렉션에서 모든 항목을 제거 할 수 있습니다.
for (String name : mongo.getDatabaseNames()) {
mongo.dropDatabase(name);
}
을 테스트 당신이 임의의 포트에 부팅 선택한 경우 당신은 항상 그것을 차단 될 수 있습니다 실행 한 후 : 아름다운 MongoDB를 당신을 위해 다시 작성하므로 사실, 난 그냥, DBS를 드롭 모든 ,하지만 그건 좀 어리석은 것처럼 보입니다. 인생은 너무 짧습니다.
모든 단일 단위 테스트를 실행하기 전에 테스트 쿼리를 실행 하시겠습니까? – azamsharp
아니요, 데이터베이스를 다시 시작한 후 UnitTests가 시작되기 전에 데이터베이스가 실행 중임을 알 수 있습니다. 나는 그것을 데이터베이스를 시작하는 동일한 루틴에 포함시키는 것을 의미합니다. –
데이터베이스를 시작하면 무슨 뜻인지 이해가 안됩니다! 데이터베이스가 없습니다. 그것은 시작할 서버가 필요한 MongoDb 데이터베이스입니다. 서버를 시작한 후에 지연 될 수 있지만 이상하게 보입니다! – azamsharp