我试图嘲笑项目中的一些方法,以便在被调用时返回一定的值。 但是当你运行测试时,它们会随输出而下降: org.mockito.exceptions.misusing.InvalidUseOfMatchersException:使用参数匹配器无效! 0 matchers expected,1 recorded: – > at com.hodzi.stackviewer.questions.detail.QuestionDetailPresenterTest.voteTest(QuestionDetailPresenterTest.kt:69) 如果匹配器与原始值结合,则可能发生此异常://不正确:someMethod(anyObject(),“raw String”); 在使用匹配器时,所有参数都必须由匹配器提供。 例如:// correct:someMethod(anyObject(),eq(“String by matcher”)); 如果在调试模式下运行相同的代码并遍历所有行,那么当调用shared.getToken()时,将返回指定的值。 但是正常的启动,测试落在这条线上。 码: import com.hodzi.stackviewer.questions.QuestionsInteractor import com.hodzi.stackviewer.utils.Shared import com.hodzi.stackviewer.utils.Vote import org.junit.BeforeClass import org.junit.Test import org.mockito.ArgumentMatchers import org.mockito.Mockito internal class QuestionDetailPresenterTest { companion object { lateinit var presenter: QuestionDetailPresenter lateinit var view: QuestionDetailView @BeforeClass @JvmStatic fun setUp() { […]
我想创建一个显示下载进度的通知(它现在被模拟),并允许用户取消下载。 我使用通知生成器并添加“取消下载”操作。 该操作将显示,但不会单击发送PendingIntent。 我确认PendingIntent正在通过设置contentIntent来工作。 广播接收者能够获得内容点击的消息,但不能点击该动作。 下载服务 val cancelIntent = Intent(applicationContext, NotificationBroadcastReceiver::class.java).apply { action = "xxx.xxx.xxx.CANCEL_DOWNLOAD" putExtra("notification_id", NOT_ID_PROGRESS) } val pendingIntent = PendingIntent.getBroadcast(applicationContext, 1, cancelIntent, PendingIntent.FLAG_UPDATE_CURRENT) pendingIntent.send() val notificationBuilder = NotificationCompat.Builder(applicationContext, "updates").apply { setContentTitle("Title") setContentText("Text") setSmallIcon(R.drawable.ic_logo_full_black) setOnlyAlertOnce(true) setContentIntent(pendingIntent) addAction(NotificationCompat.Action.Builder(R.drawable.ic_delete, "Cancel", pendingIntent).build()) } startForeground(NOT_ID_PROGRESS, notificationBuilder.build()) Thread({ for (i in 0..100) { notificationBuilder.setProgress(100, i, false) notificationManager?.notify(NOT_ID_PROGRESS, notificationBuilder.build()) Thread.sleep(100L) […]
回应改进后,我得到一个空的机构。 这是我从我的日志中得到的: V/test: Response{protocol=http/1.1, code=200, message=, url= 这是我的代码: val call: Call<ResponseBody> = service.getTestCase() call.enqueue(object:Callback<ResponseBody> { override fun onResponse(call:Call<ResponseBody>, response:Response<ResponseBody>) { if (response.isSuccessful()) { // tasks available Log.v("Test",response.body().toString()) Log.v("test", response.toString()) } else { // error response, no access to resource? } } override fun onFailure(call:Call<ResponseBody>, t:Throwable) { // something went completely south (like no internet connection) […]
我写了一个继承自RelativeLayout的自定义布局。 它有一个方法(在布局被膨胀后调用),当被调用时会膨胀一个视图,将其附加到布局,然后将其与布局相关联。 但是,当我尝试设置布局参数时,它似乎什么都不做: fun createCell() { // Inflate a cell and attach it to this val cell = inflate(context, eventCellId, this) // Setup layout params for the cell val params = RelativeLayout.LayoutParams(400, 400) // Lets force it to be 200 from the top params.topMargin = 200 // Set the cell layout params cell.layoutParams = params […]
这是我的代码这使输出控制台上的堆栈溢出错误30次 fun main(args:Array<String>){ var no:Int=Integer.parseInt(readLine())//read input from user and convert to Integer var ans:Int=calculateFact(no) //call function and store to ans variable println("Factorial of "+no+" is "+ans) //print result } fun calculateFact(no:Int):Int //function for recursion { if(no==0) { return 1 } return (no*calculateFact(no)) } 我不知道什么是错误解决PLZ
我有以下方法可以得到Realm对象的新键。 我想能够通过类作为参数: private fun getNextKeyForObject(myClass: Class<*>): Int { mRealm?.let { val maxId = it.where(myClass).max("id") if (maxId != null) { return it.where(myClass).max("id").toInt() + 1 } } return 0 } 我得到以下错误: Type parameter bound for E in fun <E : RealmModel!> where(clazz: Class<E!>!): RealmQuery<E!>! is not satisfied: inferred type CapturedTypeConstructor(*) is not a subtype of RealmModel!
我有下一个案例的参数: @Test fun lostClick() { //setup parameters val func0 : (Unit) -> Unit = { println("fun0")} val func1 : (String) -> Unit = { println("fun1")} val func2 : (Int) -> Unit = { println("fun2")} whenever(deviceInteractor.reserveBadCaseDevice( //equals `when` eq(workerId), eq(DeviceCondition.LOST), eq(func0), eq(func1), eq(func2))).then({ func0.invoke(Unit) }) presenter.lostClick() //view reaction verify(viewState).showLoad(true) // verify(viewState).setButtonGiveEnabled(true) // if func0 called this […]
当发送回调时,LiveData观察器不会触发。 但是,如果我把可观察的数据放在一个函数中,并且改变数据,它就可以正常工作。 请任何想法是什么? fun connect(address: String){ protocolARC.value = ProtocolARC() //OKAY!!!! bleManager.gattClient.onCreate(getApplication(), address, object : GattClient.OnCounterReadListener { override fun onCounterRead(value: Int) { Log.d("HURRAY", "read") protocolARC.value = ProtocolARC() //NOT OKAY????? } override fun onConnected(success: Boolean) { stopScan() } }) }
当我尝试构建生成Dagger文件的项目生成失败,出现异常。 你能告诉我如何修复它,或者至少在什么方向看。 e:/home/hodzi/Projects/StudioProjects/StackViewer/app/build/tmp/kapt3/stubs/debug/com/hodzi/stackviewer/di/AppComponent.java:6:error:[com.hodzi.stackviewer.questions。 di.QuestionsComponent] com.hodzi.stackviewer.questions.di.QuestionsComponent有冲突的范围:e: e:公共抽象接口AppComponent {e:^ e: com.hodzi.stackviewer.di.AppComponent也有@Singleton e:java.lang.IllegalStateException:未能分析:org.jetbrains.kotlin.kapt3.diagnostic.KaptError:在org.jetbrains.kotlin.analyzer的注解处理时出错。在org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler。)上的org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules(KotlinToJVMBytecodeCompiler.kt:138)处的AnalysisResult.throwIfError(AnalysisResult.kt:57) kt:154)at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:58)at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:103)at org.jetbrains .kotlin.cli.common.CLICompiler.execImpl(CLICompiler.java:51)at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:92)at org.jetbrains.kotlin.daemon.CompileServiceImpl $ compile在org.jetbrains.kotlin.daemon.CompileServiceImpl上编译$ 1 $ 2.invoke(CompileServiceImpl.kt:386) eServiceImpl $ doCompile $$ inlined $ ifAlive $ lambda $ 2.invoke(CompileServiceImpl.kt:889)at org.jetbrains.kotlin.daemon.CompileServiceImpl $ doCompile $$ inlined $ ifAlive $ lambda $ 2.invoke(CompileServiceImpl.kt:96)at org.jetbrains.kotlin.daemon.common.DummyProfiler.withMeasure(PerfUtils.kt:137)at org.jetbrains.kotlin.daemon.CompileServiceImpl.checkedCompile(CompileServiceImpl.kt:916)at org.jetbrains.kotlin.daemon.CompileServiceImpl。在sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)上,在org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:385)处编译(CompileServiceImpl.kt:888)。 java:62)at sun.rlect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java :324)at sun.rmi.transport.Transport $ 1.run(Transport.java:200)at […]
我正在使用一个FrameLayout来显示一个包含ViewPager的片段。 有时候我需要换一个片段。 一切工作正常,直到我想回到包含ViewPager的片段。 这是我正在使用的代码: 包含ViewPager的片段: override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { val view : View = inflater!!.inflate(R.layout.main_quotes, null) val vpQuotes = view.findViewById<CustomViewPager>(R.id.vpQuotes) val vpAdapter = ViewPagerAdapter(activity.supportFragmentManager) vpQuotes.adapter = vpAdapter val vpPageChangeListener : ViewPager.OnPageChangeListener = object : ViewPager.OnPageChangeListener { override fun onPageScrollStateChanged(state: Int) { } override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: […]