作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前尝试将一个类作为 spy 对象进行测试,该对象通常在构造函数中初始化数据库连接。该类的简化版本如下所示。
class classToTest(){
val connection:Connection
init {
connection = DatabaseConnection(url="127.0.0.1")
}
fun methodA():Int{
return 3
}
}
现在我尝试以下列方式(简化)测试我的 classToTest 的方法。
class TestClass(){
var connection = mockk<DatabaseConnection>()
var dbh = spyk(ClassToTest())
@Test
fun testMethodA(){
assertEquals(dbh.methodA,3)
}
}
现在的问题是我的测试无法开始,因为我不知道如何覆盖可能使用连接模拟而不是初始化连接对象的 init 函数。感谢您的帮助。
最佳答案
我认为没有办法模拟 spy 的 init 函数。
我建议您使用构造函数来传递连接实例。
class ClassToTest(val connection: Connection) {
...
}
然后在您的测试中模拟连接非常容易。
class TestClass(){
private val dbh = ClassToTest(mockk())
@Test
fun testMethodA() {
assertEquals(dbh.methodA, 3)
}
}
关于unit-testing - MockK 的 spyk 如何覆盖构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56809910/
我有 spyk来自 mockk图书馆: my = spyk(My()) 后来我 mock 一种方法来返回类似的东西: every { my.method("someString") } returns
例如方法 class SomeClass() { fun login(listener: (Boolean) -> Unit ) { do some asy
我目前尝试将一个类作为 spy 对象进行测试,该对象通常在构造函数中初始化数据库连接。该类的简化版本如下所示。 class classToTest(){ val connection:Conn
我是一名优秀的程序员,十分优秀!