Tag: kotlin

我应该如何在Spek中设置可变测试夹具?

我正试图在斯佩克的灯光中find我的头。 文档中的计算器示例很容易遵循,但是我不确定如何在构建安装/拆卸时执行某些固定设备。 例如,如果我正在测试一个列表: describe(“a list”) { val list = arrayListOf() // Only instantiated once on(“adding an item”) { list.add(123) it(“has a size of one”) { list.size.should.equal(1) } } on(“adding 2 items”) { list.add(1) list.add(2) it(“has a size of 2”) { list.size.should.equal(2) // Fails, 3 != 2 } } } 据我所知,在Spek中, describe块只被评估一次,所以只有一个List实例。 该文档有助于建议使用测试装置,但无助于举一个例子! 我认为以下方法是行不通的,因为Kotlin不了解Spek之前一定会on beforeEachTest之前调用 describe(“a […]

android.support.v4.app.FragmentManager不能提供@ Provide或@ Produces注解的方法

所以我对Dagger很陌生,试图通过活动加上独立片段和独立导航来“Kotlin”MVP项目的“daggerify”。 事实上,我使用基于支持lib的Fragment的好几个视图让我尝试最近的匕首Android支持function。 经过一些与构件图构建挣扎后,我遇到了这个错误代表的问题: e: …\MyApp\app\build\tmp\kapt3\stubs\debug\com\…\di\app\MyAppComponent.java:6: error: [dagger.android.AndroidInjector.inject(T)] android.support.v4.app.FragmentManager cannot be provided without an @Provides- or @Produces-annotated method. e: e: public abstract interface MyAppComponent extends dagger.android.AndroidInjector { e: ^ e: android.support.v4.app.FragmentManager is injected at e: myapp.ui.common.BaseActivity.fragmentManager e: myapp.ui.main.MainActivity is injected at e: dagger.android.AndroidInjector.inject(arg0) e: java.lang.IllegalStateException: failed to analyze: org.jetbrains.kotlin.kapt3.diagnostic.KaptError: Error while annotation processing at org.jetbrains.kotlin.analyzer.AnalysisResult.throwIfError(AnalysisResult.kt:57) at […]

如何使用界面android在适配器中创建onclick事件?

如何使用界面创建点击事件? 在我的应用程序中,我创建了视图单击界面来检测将适配器项目单击到父活动中。 创建接口和方法到适配器后,如何使用此接口来调用视图侦听器?

如何配置使用klaxon库的spring引导

有一个klaxon库 – 用于kotlin JSON解析器 如何配置Spring Boot来使用它来创建一个REST API: @RestController class SampleController { @RequestMapping(“/test”, method = [RequestMethod.POST]) fun test(@RequestBody body:JsonObject): JsonObject { //work with body val (KLAXON object) //return KLAXON object } } @RequestBody body:JsonObject – 是一个Klaxon对象,所以我们不想使用标准的Jackson2ObjectMapperBuilder for RequestBody。 为了简单起见,我们不希望将它用于Response主体。 Post body是一些动态数据,所以我想在lib中使用Low level API ,而不是Object binding API 。

将侦听器对象作为函数parameter passing给kotlin

我试图从一个行动的一个监听器传递给一个类(一个适配器)。 在java中(来自Action的代码): private void setListeners() { adapterRecyclerView.setListener( new View.OnClickListener() { @Override public void onClick(View v) { SomeCodehere…. } }); } (来自适配器的代码) public void setListener(View.OnClickListener listener) { this.listener = listener; } 有用。 现在我正在试着去kotlin。 我首先翻译行动(翻译行动kotlin): private fun setListeners() { // !! is not fine i know adapterRecyclerView!!.setListener { v -> SomeCodehere…. } } 此时仍然有效。 使用适配器的代码仍然在java和kotlin类中的代码。 现在我把适配器翻译成kotlin: fun […]

kotlin从NavigationView头获取视图

我有这样的差异,但我相信有exsists更好的方式来做到这一点 val header = nav_view.getHeaderView(0) as LinearLayout val userName = header.findViewById(R.id.user_name) as TextView 但是当它只是通过user_name获得它的时候它是空的

暴露:如何解析JSON到一个实体类

我有以下用户表对象和实体类: object UserTable : IntIdTable() { val name = varchar(“name”, 256) } class User(id: EntityID): IntEntity(id) { companion object : IntEntityClass(UserTable) val name by UserTable.name } 有没有办法使用Gson(或其他库)来解析JSON到User实例,然后插入它? 从我可以告诉,看来我必须创建一个中间的UserData数据类,然后手动复制字段。 data class UserData { var id: Int? var name: String? } fun main() { val data = Gson().fromJson(“…”, UserData::class.java) val user = User.new { name = data.name […]

Swotger为Kotlin

有没有人用Kotlin使用了一个夸大的工具? 在我们的组织中,我们使用Java和SpringMVC(@RestController类)创建了大部分REST服务。 我们使用springfox来生成Swagger API文档。 Swagger JSON表示也用于自动提供可搜索的服务目录,所以服务元数据的swagger格式对我们来说非常重要。 一些开发团队现在开始使用Kotlin。 我们正在寻找与使用KOTLIN的springfox或其他swagger库有关的建议或意见。

在Kotlin解析json

我试图在Kotlin中解析Json。 我遇到了很多麻烦,似乎很多人学习Java之后的Kotlin …不是我,我是一个Python家伙。 我得到了一个Kotlin Jupyter笔记本,运行速度相当快( https://github.com/ligee/kotlin-jupyter ),之后我设法从bittrex api中获取信息,如下所示: import java.net.URL val result = URL(“https://bittrex.com/api/v1.1/public/getmarkets”).readText() 我花了很长时间才发现我需要添加import java.net.URL,这似乎总是隐含在所有的代码示例中。 无论如何,这给了我一个响应在JSON(“结果参数”): {“success”:true,”message”:””,”result”:[{“MarketCurrency”:”LTC”,”BaseCurrency”:”BTC”,”MarketCurrencyLong”:”Litecoin”,”BaseCurrencyLong”:”Bitcoin”,”MinTradeSize”:0.01469482,”MarketName”:”BTC-LTC”,”IsActive”:true,”Created”:”2014-02-13T00:00:00″,”Notice”:null,”IsSponsored”:null,”LogoUrl”:”json/6defbc41-582d-47a6-bb2e-d0fa88663524.png”},{“MarketCurrency”:”DOGE”,”BaseCurrency”:”BTC”,”MarketCurrencyLong”:”Dogecoin”,”BaseCurrencyLong”:”Bitcoin”,”MinTradeSize”:274.72527473,”MarketName”:”BTC-DOGE”,”IsActive”:true,”Created”:”2014-02-13T00:00:00″,”Notice”:null,”IsSponsored”:null,”LogoUrl”:”json/a2b8eaee-2905-4478-a7a0-246f212c64c6.png”},{“MarketCurrency … 现在,在Python中,我只是将“json()”添加到“result”参数中,然后我可以将json字段作为具有多个级别的字典来处理,例如 result[“success”] 会给我: true 有没有像Kotlin那样的东西? 我试过了Klaxon https://github.com/cbeust/klaxon ,又花了我很多时间才意识到我要import com.beust.klaxon.string ,在网站上没有提到例如,所以一个侧面的问题是:当你find代码示例时,你怎么知道你需要导入什么? 似乎每个人都知道…但我离题了。 我的主要问题是:如何解决Json的单独字段并将它们分解为单独的variables? 最高的问候。

ArgumentCaptor vs InOrder来validation后续的回调与不同的参数

我正在测试使用Architecture Components的Room库生成的DAO类。 我想检查加入多个表的查询返回的LiveData是否会在数据更改时更新。 我开始使用InOrdervalidation,但是发现无论我想expression什么论点,Mockito都会说这个方法是用另一个方法调用的(当我把这个断言改为那个时,它会说是另一个) 。 使用一个ArgumentCaptor原来是为了这个目的而正常工作,这是这个问题的主题: 为什么ArgumentCaptorvalidation在这里工作,但InOrder不? 看问题的答案如何validation多个方法调用与不同的参数 ,这两种方法应该工作正常。 下面是我的测试的简化版本,展示了这个问题: package com.example import com.nhaarman.mockito_kotlin.argumentCaptor import com.nhaarman.mockito_kotlin.check import com.nhaarman.mockito_kotlin.mock import org.junit.Assert.assertEquals import org.junit.Test import org.junit.runner.RunWith import org.mockito.Mockito.* import org.mockito.junit.MockitoJUnitRunner @Suppress(“IllegalIdentifier”) @RunWith(MockitoJUnitRunner::class) class MultipleCallbacksVanillaTest { private val java = Language(“Java”) private val javascript = Language(“JavaScript”) private val kotlin = Language(“Kotlin”) private val firstList = emptyList() private val […]