我有一种情况需要测试一个函数,但是类已经注入了String值,如下所示:
public class SomeClass{
@Inject
@Named("api")
private String api;
public Observable<String> get(String uuidData){
//do something with "api" variable
}
}
Run Code Online (Sandbox Code Playgroud)
现在我如何从我的JUnit测试用例中注入这个?我也在使用Mockito,但它不允许我模仿原始类型.
我正在从Dagger 2.11中探索新的dagger.android.我希望不必创建自定义范围注释@PerActivity.到目前为止,我能够做到以下几点:
1)定义应用程序范围单例并将它们注入活动.
2)定义活动范围非单例依赖关系,并使用它们将它们注入到它们的活动中 @ContributesAndroidInjector
我无法弄清楚的是如何使用它的应用程序范围Singleton和Activity范围非单例.
在下面的示例中,我想要我的活动范围MyActivityDependencyA并MyActivityDependencyB可以访问SingletonMyActivityService
以下设置导致:
错误:(24,3)错误:com.example.di.BuildersModule_BindMyActivity.MyActivitySubcomponent(unscoped)可能不引用作用域绑定:@Singleton @Provides com.example.MyActivityService com.example.MyActivitySingletonsModule.provideMyActivityService()
这是我的设置.注意,我定义了单独的MyActivitySingletonsModule, MyActivityModule因为我不能在同一个Module文件中混合使用Singleton和非Singleton依赖项.
@Module
public abstract class BuildersModule {
@ContributesAndroidInjector(modules = {MyActivitySingletonsModule.class, MyActivityModule.class})
abstract MyActivity bindMyActivity();
}
}
Run Code Online (Sandbox Code Playgroud)
和
@Module
public abstract class MyActivityModule {
@Provides
MyActivityDependencyA provideMyActivityDependencyA(MyActivityService myActivityService){
return new MyActivityDependencyA(myActivityService);
}
@Provides
MyActivityDependencyB provideMyActivityDependencyB(MyActivityService myActivityService) {
return new MyActivityDependencyB(myActivityService);
}
}
Run Code Online (Sandbox Code Playgroud)
和
@Module
public abstract class MyActivitySingletonsModule {
@Singleton
@Provides
MyActivityService provideMyActivityService() {
return new MyActivityService();
} …Run Code Online (Sandbox Code Playgroud) 我开始在Android Studio中使用Kotlin但是我想以我可以按下的方式检查Kotlin源,Ctr-B或者Cmd-B"跳转到声明"以查看任何标准Java类的源代码.
例如,如果我采用默认的Android Studio Kotlin项目并添加一行调用标准Kotlin listOf():
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
listOf("hello", "goodbye");
}
Run Code Online (Sandbox Code Playgroud)
按Ctr-B上listOf()我只得到了以下内容:
public fun <T> listOf(vararg elements: T): kotlin.collections.List<T> { /* compiled code */ }
Run Code Online (Sandbox Code Playgroud)
如果我点击Choose Sources我找不到出现的目录中的源文件.如何设置Android Studio以查看这些标准Kotlin类的来源?
是否可以从VB.NET中的浏览对话框中选择多个文件夹路径?
如果有任何链接或参考,请告诉我.
在 C# 中是否有等效于 JUnit 的规则?我的意思是一种避免在几个不同的测试中重复相同[SetUp]和[TearDown]行的方法。代替:
[SetUp]
public void SetUp()
{
myServer.connect();
}
[TearDown]
public void TearDown()
{
myServer.disconnect();
}
Run Code Online (Sandbox Code Playgroud)
...将逻辑放在一个规则中,该规则可以在几个测试中声明为字段:
public MyRule extends ExternalResource {
@Override
protected void before() throws Throwable
{
myServer.connect();
};
@Override
protected void after()
{
myServer.disconnect();
};
};
Run Code Online (Sandbox Code Playgroud)
进而
class TestClass
{
@Rule MyRule = new MyRule();
...
}
Run Code Online (Sandbox Code Playgroud) 我已经OnChartValueSelectedListener为我的饼图写了以下内容.我可以使用下面的代码获取值.但是,我想获得文本标签.在下面的代码中,e.getY()将获得y值.如何获取文本标签Entry?
holder.chartyear.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
@Override
public void onValueSelected(Entry e, Highlight h) {
Log.e("VAL SELECTED", "Value: " + e.getY() + ", index: " + h.getX()
+ ", DataSet index: ");
}
@Override
public void onNothingSelected() {
}
});
Run Code Online (Sandbox Code Playgroud) 我有一个LineChart使用 MPAndroidChart 创建的。我已经OnChartValueSelectedListener为这个图表设置了一个,到目前为止一切正常。onValueSelected如果我点击图表上的任何地方,就会调用该函数。只有在点击图表内的圆圈(值点)时才会调用它。
我为此尝试了很多选择,但没有运气。
谁能向我解释如何解决这个问题?
我有以下数据使用MPAndroidChart库以图表格式表示:
Subject Marks
Needs Attention Average Outstanding
Hindi 1/5 2/5 2/5
English 2/7 3/7 2/7
Maths 1/3 1/3 1/3
Science 2/7 2/7 3/7
Physics 2/9 4/9 4/9
Sanskrit 3/7 3/5 0
Run Code Online (Sandbox Code Playgroud)
我想要一个如下图表:
上面的图表只是样品,我希望每个条形图中有三种颜色(堆叠).我已经制作了一个单独颜色的条形图,但不能制作这样的多色图表.在MPAndroidChart中有可能吗?
我想startActivityforResult在Kotlin的一行声明中打电话.像这样的东西:
startActivityForResult(Intent(this@MainActivity2,MainActivity::class.java),1))
Run Code Online (Sandbox Code Playgroud) 我目前正在学习Kotlin,以在我的android应用程序中替换Java,但正在努力确保安全性。
我已经熟悉处理null和non-null变量的过程,但是,我仍然不确定Kotlin中实现null / non-null变量方面的“最佳实践”。
例如,在Java中,我将编写如下内容:
UserAccount account;
if (account == null) {
openLogin();
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以在Kotlin中复制此语言,但似乎该语言旨在避免这种做法。我应该如何通过Kotlin实施此系统,我应该添加可为空的变量吗?