在Spring启动测试中重写spring.data.mongodb.uri以使用mongo TestContainer的方法如下:
@RunWith(SpringRunner.class)
注解,以便使用Spring的测试框架。@SpringBootTest
注解来指定启动Spring Boot应用程序的配置。start()
方法启动容器。这将自动下载并启动一个MongoDB容器。@Test
注解,并在方法中使用@Autowired
注解将MongoTemplate注入到测试类中。@Before
注解来执行一些初始化操作。在这个方法中,你可以使用getContainerIpAddress()
和getMappedPort()
方法获取MongoDB容器的IP地址和端口号。@Before
方法中,使用System.setProperty()
方法重写spring.data.mongodb.uri
属性,将其设置为MongoDB容器的连接URL。例如:@Before
public void setup() {
System.setProperty("spring.data.mongodb.uri", "mongodb://" + container.getContainerIpAddress() + ":" + container.getMappedPort(27017) + "/test");
}
@After
注解来执行一些清理操作。在这个方法中,你可以使用stop()
方法停止MongoDB容器。完整的示例代码如下:
@RunWith(SpringRunner.class)
@SpringBootTest
public class MyMongoDBTest {
@ClassRule
public static MongoDBContainer container = new MongoDBContainer(DockerImageName.parse("mongo"));
@Autowired
private MongoTemplate mongoTemplate;
@Before
public void setup() {
System.setProperty("spring.data.mongodb.uri", "mongodb://" + container.getContainerIpAddress() + ":" + container.getMappedPort(27017) + "/test");
}
@Test
public void testMongoDBOperations() {
// 在这里编写你的测试代码,使用mongoTemplate执行数据库操作
}
@After
public void cleanup() {
container.stop();
}
}
这样,你就可以在Spring启动测试中重写spring.data.mongodb.uri
以使用Mongo TestContainer了。这种方法可以确保在测试期间使用一个独立的MongoDB容器,而不会影响到开发环境或生产环境中的数据库。
领取专属 10元无门槛券
手把手带您无忧上云