小编Zbi*_*ski的帖子

IntelliJ Idea:如何自动删除注释掉的代码?

我在我的 Android/Java 项目上运行了 SonarQube 分析,结果出现了以下问题:

代码段不应“注释掉”

如果 SonarQube能够识别它们,是否可以在 Android Studio 中自动注释掉代码?我不能只删除所有评论,因为也有一些是合法的。

我有 500 多个,不想手动完成。有任何想法吗?

static-analysis intellij-idea android-studio

8
推荐指数
1
解决办法
1434
查看次数

Kotlin的Fisheye/Crucible语法高亮显示

从Crucible版本4.2.1开始,Kotlin文件没有内置的语法高亮支持.我已经填写了一个功能请求.

然而,就目前而言,唯一的可能就是描述添加自定义语法配置在这里.

有没有人已经完成它并可以共享配置?

syntax-highlighting kotlin atlassian-fisheye atlassian-crucible

8
推荐指数
1
解决办法
383
查看次数

Android MVP单元测试 - 我应该模拟事件总线吗?

场景:用户在屏幕上执行操作,这使应用程序异步加载一些数据,然后更新视图.

在我的架构中,它以这种方式完成:

  1. 用户的操作调用一些presenter方法
  2. Presenter调用manager,它启动异步任务
  3. 后台线程中的异步任务调用服务,并将结果发布到事件总线
  4. 当演示者收到有关新数据的通知(通过事件总线)时,它会重新加载视图

我正在考虑在这种情况下进行单元测试的两种方法(让我们假设异步任务在单个测试线程中按顺序执行):

  1. 在分离中测试每个类是没有意义的,因为方法通常没有逻辑,只有委托.我们可以在演示者及其依赖关系中定义"单元",直到服务级别(因此,我们应该只模拟服务).从服务返回的结果应最终传递给演示者,因此我们可以测试完整路径.

  2. 我们使用的事件总线实现取决于Android运行时(绿色机器人),所以要在测试中使用它我们会创建一些智能假,这是非常复杂的.因此,单元测试最好将模拟事件总线视为"外部"依赖.因此对于我们的用例,我们应该分别测试路径演示者 - >事件总线和事件总线 - >演示者.

哪种方法对我的方案更好?

第一个似乎更直观:测试正在检查用户操作是否导致正确的视图更改.如果我们可以同步执行操作,那么管理器,异步任务和事件总线将是不必要的 - 它们只是样板,与业务逻辑无关.我错过了一些我会后悔的事吗?

mvp events android unit-testing asynchronous

6
推荐指数
0
解决办法
689
查看次数

如何序列化/反序列化Kotlin密封类?

我有以下密封课程:

sealed class ViewModel {

  data class Loaded(val value : String) : ViewModel()
  object Loading : ViewModel()

}
Run Code Online (Sandbox Code Playgroud)

我如何序列化/反序列化ViewModel类的实例,比方说JSON格式?

我尝试使用Genson序列化器/反序列化器库-它可以处理Kotlin数据类,还可以支持多态类型(例如,使用一些元数据来指定具体类型)。

但是,该库在Kotlin object类型上失败,因为它们是没有公共构造函数的单例。我想我可以编写一个自定义的Genson转换器来处理它,但是也许有更简单的方法来做到这一点?

singleton json deserialization kotlin genson

6
推荐指数
3
解决办法
5277
查看次数

适用于 Android 的 Crashlytics:禁用通过 Gradle 构建自动上传映射文件

我想在我们的应用程序中使用 crashlytics,但我不允许将它的 proguard 映射文件上传到外界的任何地方(公司政策)。是否可以使用 Crashlytics 但使用混淆的堆栈跟踪?

io.fabric插件的文档中,我找到了这个选项:

ext.enableCrashlytics = false
Run Code Online (Sandbox Code Playgroud)

但它禁用了整个报告,所以这不是我想要的。

android gradle crashlytics

5
推荐指数
2
解决办法
3714
查看次数