我在我的 Android/Java 项目上运行了 SonarQube 分析,结果出现了以下问题:
代码段不应“注释掉”
如果 SonarQube能够识别它们,是否可以在 Android Studio 中自动注释掉代码?我不能只删除所有评论,因为也有一些是合法的。
我有 500 多个,不想手动完成。有任何想法吗?
从Crucible版本4.2.1开始,Kotlin文件没有内置的语法高亮支持.我已经填写了一个功能请求.
然而,就目前而言,唯一的可能就是描述添加自定义语法配置在这里.
有没有人已经完成它并可以共享配置?
syntax-highlighting kotlin atlassian-fisheye atlassian-crucible
场景:用户在屏幕上执行操作,这使应用程序异步加载一些数据,然后更新视图.
在我的架构中,它以这种方式完成:
我正在考虑在这种情况下进行单元测试的两种方法(让我们假设异步任务在单个测试线程中按顺序执行):
在分离中测试每个类是没有意义的,因为方法通常没有逻辑,只有委托.我们可以在演示者及其依赖关系中定义"单元",直到服务级别(因此,我们应该只模拟服务).从服务返回的结果应最终传递给演示者,因此我们可以测试完整路径.
我们使用的事件总线实现取决于Android运行时(绿色机器人),所以要在测试中使用它我们会创建一些智能假,这是非常复杂的.因此,单元测试最好将模拟事件总线视为"外部"依赖.因此对于我们的用例,我们应该分别测试路径演示者 - >事件总线和事件总线 - >演示者.
哪种方法对我的方案更好?
第一个似乎更直观:测试正在检查用户操作是否导致正确的视图更改.如果我们可以同步执行操作,那么管理器,异步任务和事件总线将是不必要的 - 它们只是样板,与业务逻辑无关.我错过了一些我会后悔的事吗?
我有以下密封课程:
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转换器来处理它,但是也许有更简单的方法来做到这一点?
我想在我们的应用程序中使用 crashlytics,但我不允许将它的 proguard 映射文件上传到外界的任何地方(公司政策)。是否可以使用 Crashlytics 但使用混淆的堆栈跟踪?
在io.fabric插件的文档中,我找到了这个选项:
ext.enableCrashlytics = false
Run Code Online (Sandbox Code Playgroud)
但它禁用了整个报告,所以这不是我想要的。
android ×2
kotlin ×2
asynchronous ×1
crashlytics ×1
events ×1
genson ×1
gradle ×1
json ×1
mvp ×1
singleton ×1
unit-testing ×1