我用Robolectric测试写了一个简单的hello-world。
我已经向build.gradle添加了正确的依赖项:
testCompile 'junit:junit:4.12'
testCompile "org.robolectric:robolectric:3.0"
下面是我要测试的简单cartmodel.java
:
public class CartModel {
public float totalAmount;
public int products;
public void addToCart(float productPrice) {
products++;
totalAmount += productPrice;
}
}
@RunWith(RobolectricGradleTestRunner.class)
@Config(constants = BuildConfig.class, sdk=21)
public class CartModelTest {
@Test
public void addToCart() throws Exception {
CartModel cartModel = new CartModel();
assertEquals(0, cartModel.totalAmount, 0);
assertEquals(0, cartModel.products);
cartModel.addToCart(10.2f);
assertEquals(10.2f, cartModel.totalAmount, 0);
assertEquals(1, cartModel.products);
}
}
我运行的是Android Studio2.0预览版3B。
问题是:如何避免失败?
这很奇怪,但我所要做的就是在Android Studio中禁用即时运行(Preferences->Build,Execution,Deployment->instant run->Enable instant run-uncheck)。
现在所有的测试都通过了。
我用Spock测试Java代码。我测试这段代码: 我写了一个测试: 它失败是因为抛出了另一个CustomException。但是在块中,我捕获这个异常并抛出一个,因此我希望我的方法将抛出,而不是。如何测试它?
我正在开发和android应用程序。我正在使用reverfit(与OkClient一起使用)来处理api请求,并使用Robolectric来进行测试。我的api如下所示: 有人知道问题是什么吗?似乎由于某种未知的原因,线程被杀死了? 多谢了。 编辑:如果在onNext函数(subscribe的第一个参数)中,我执行第二个请求,那么它就工作了。一切都像预期的那样是同步的。 希望这有帮助。
我目前在我的Android应用程序中同时使用RoboGuice 2.0和Robolectric 1.1。我注意到RoboLooperThread在2.0中消失了,而且我很难调用任何RoboAsyncTask。当主测试线程对调用时,从不调用RoboAsyncTask的方法。我的问题是我如何强制测试线程切换到UI线程和从UI线程切换到UI线程,这样任务就可以执行了? 谢谢, 文斯
我正在尝试集成测试一个ItemReader——下面是一个类: 这是我的豆子。xml: 这是我想写的测试: 我java.lang.ClassCastExctive:com.sun.proxy.$Proxy36不能在之前和之后转换为ItemReader。我错过了什么?是否还有其他需要设置的东西(例如配置xml中的任何注释或条目)?
使用Robolectric的参数化测试 原文链接 : Parameterized testing with Robolectric 译文出自 : 开发技术前线 www.devtf.cn 译者 : Lollypo 校对者: Chaos 状态 : 校对完成 在目前的项目中我们使用Robolectric为Android应用程序编写单元测试,它一直都干的不错。最近我需要编写一个测试用例,通过每次使用不同的