我必须使用MongoDB存储开发一些针对Java代码的Junit测试.是否有任何框架/库允许我初始化模拟内存中的MongoDB服务器?
(我们的想法是只测试代码本身,这意味着,如果安装并运行MongoDB,则可以在任何机器上独立测试).
提前致谢!
我正在考虑针对使用Firebase进行数据存储的应用的测试策略.虽然端到端测试可以向实际后端发出请求,但能够对不需要访问Firebase 的应用程序逻辑进行单元测试会很好.
我一直在网上寻找一种方法来使用像本地JSON文件来模拟javascript Firebase服务,但是没有找到任何东西.这样的事情存在吗?如果没有,我会写它并发布在github上...
如何使用Ktorwith进行单元测试KMongo?如何模拟数据库并对其进行测试?假设我制作了最简单的 API,如下所示:
private val client = KMongo.createClient().coroutine
private val database = client.getDatabase("dbName")
val people = database.getCollection<Person>()
suspend fun addPerson(person: Person): Boolean =
people.insertOne(person).wasAcknowledged()
fun Route.addPersonRouting()
{
route("/add")
{
post {
if (addPerson(Person("Name", "Surname")))
{
call.respond(HttpStatusCode.OK, "ADDED")
}
else
{
call.respond(HttpStatusCode.OK, "NOT ADDED")
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
@Test
fun `add person successfully`() = withTestApplication(
{
install(ContentNegotiation){ json() }
routing { addPersonRouting() }
}
) {
val c = handleRequest(HttpMethod.Post, "/add")
assertEquals(HttpStatusCode.OK, c.response.status())
assertEquals("ADDED", c.response.content)
}
Run Code Online (Sandbox Code Playgroud)
现在我可以编写一个单元测试,但问题是用于此测试的数据库不干净,因此在每次测试之前我必须清理它。我在想是否有任何内置数据库,以便测试类可以使用它,并且每次运行时,它都会为我提供一个新的干净数据库。如果可能的话,我可以修改路由,以便它需要接口/数据库,并且在应用程序中,我可以传递普通数据库并进行测试,我可以使用测试数据库。Android Room …
unit-testing ×2
firebase ×1
javascript ×1
junit ×1
kmongo ×1
kotlin ×1
ktor ×1
mocking ×1
mongodb ×1