android - 如何将 mockk 与通用构造函数参数一起使用?
问题描述
所以我有一堂课
class Test<T : SomeListener> @Inject constructor(
private val dependency1: Dependency1,
private val listener: T
)
我正在尝试使用 mockk 为它编写一个单元测试,并在尝试使用泛型类型模拟和初始化它时遇到错误。
class TestTest {
@MockK
lateinit var dependency1: Dependency1
@MockK
lateinit var listener: ListenerImpl
@InjectMockKs(overrideValues = true)
lateinit var testObject: Test<ListenerImpl>
}
我不断收到错误“io.mockk.MockKException:找不到匹配的构造函数:...侦听器:T =
使用此通用参数值正确模拟构造函数的正确方法是什么?
解决方案
不幸的是,我无法找到一种纯粹使用注释的方法。我最终做的是:
class TestTest {
@MockK
lateinit var dependency1: Dependency1
@MockK
lateinit var listener: ListenerImpl
lateinit var testObject: Test<SomeListener>
@BeforeEach
fun setUp() {
testObject = Test(
dependency1,
listener
)
}
}
这有效并正确初始化了 testObject。
推荐阅读
- python - 如何使 random.choices 真正随机(我在秘密模块中找不到)
- swift - 双重检查锁优化以在 Swift 中实现线程安全的延迟加载
- winapi - LockFileEx 可以与卷句柄一起使用吗?
- c - 传递结构的指针
- php - 如何更改代码使其不仅适用于静态值“一般”和“加号”?
- jsp - 如何使用 getText() 格式化 Struts2 迭代器变量的 BigDecimal 属性
- python - Django - UpdateView ModelForm 在查询集字段上设置初始值
- python - Django - 在“安装的应用程序”中添加应用程序名称时出现值错误
- python - Python 织物 findstr 字符串长度
- python-3.x - 设置代理 Python Selenium 后“当前没有打开模式对话框”