可以说我们有一个这样的类:
class Whatever {
private var something = false
fun aMethod(): Int {
return if( something ) {
1
} else {
0
}
}
}
Run Code Online (Sandbox Code Playgroud)
根据文档,看来我应该能够执行以下操作:
val classUnderTest = spyk(Whatever())
every { classUnderTest getProperty "something" } returns true
assertThat(classUnderTest.aMethod()).isEqualTo(1)
Run Code Online (Sandbox Code Playgroud)
但是我得到了错误: io.mockk.MockKException: Missing calls inside every { ... } block
我正在使用Mockk 1.8.5,Kotlin 1.2.51
WorkManager 对同时运行的作业数量是否有上限?
非常简单的例子:
class MainActivity: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
queue.setOnClickListener {
val jobs = mutableListOf<OneTimeWorkRequest>()
for( i in 1..10 ) {
jobs += OneTimeWorkRequestBuilder<MyWorker>()
.setInputData(workDataOf("key" to i))
.build()
}
WorkManager.getInstance().enqueue(jobs)
}
}
}
class MyWorker: Worker() {
override fun doWork(): Result {
val jobId = inputData.getInt("key", -1)
Log.d("worker", "starting job: $jobId")
Completable.timer(10, SECONDS).blockingGet()
Log.d("worker", "job finished: $jobId")
return SUCCESS
}
}
Run Code Online (Sandbox Code Playgroud)
和输出:
08-30 14:03:10.392 9825 9855 …Run Code Online (Sandbox Code Playgroud)