java - 使用仪器框架进行单元测试时出错

标签 java android unit-testing robotium android-testing

嗨,我是单元测试的新手。我正在为一个库项目编写单元测试用例。我的库仅包含异步网络调用。我尝试过 Robotium 和 Android 仪器框架来编写测试用例。我收到以下错误

----- begin exception -----
      I/TestRunner( 1578): 
I/TestRunner( 1578): junit.framework.AssertionFailedError: Add result should be 100 but          was 80
I/TestRunner( 1578):    at junit.framework.Assert.fail(Assert.java:50)
I/TestRunner( 1578):    at junit.framework.Assert.assertTrue(Assert.java:20)
I/TestRunner( 1578):    at com.mamlambo.article.simplecalc.test.MathValidation.test1AddDecimalValues(MathValidation.java:66)
I/TestRunner( 1578):    at java.lang.reflect.Method.invokeNative(Native Method)
I/TestRunner( 1578):    at java.lang.reflect.Method.invoke(Method.java:511)
I/TestRunner( 1578):    at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214)
I/TestRunner( 1578):    at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199)
I/TestRunner( 1578):    at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192)
I/TestRunner( 1578):    at junit.framework.TestCase.runBare(TestCase.java:134)
I/TestRunner( 1578):    at junit.framework.TestResult$1.protect(TestResult.java:115)
I/TestRunner( 1578):    at junit.framework.TestResult.runProtected(TestResult.java:133)
I/TestRunner( 1578):    at junit.framework.TestResult.run(TestResult.java:118)
I/TestRunner( 1578):    at junit.framework.TestCase.run(TestCase.java:124)
I/TestRunner( 1578):    at   android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190)
I/TestRunner( 1578):    at   android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175)
I/TestRunner( 1578):    at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555)
I/TestRunner( 1578):    at   android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1584)
I/TestRunner( 1578): ----- end exception -----

每当条件失败时,例如:assertTrue(false) 并且执行突然停止。它必须执行其他测试用例,对吧?或者我做错了什么请帮忙。

这是我的测试用例

 public void test1AddDecimalValues() {

        String mathResult = "80";
        assertTrue("Add result should be " + "100" + " but was "
                + mathResult, mathResult.equals("100"));
    }   

最佳答案

如果断言失败,则当前测试将中止。如果不管这个断言失败与否还想做其他测试;将其放入另一个测试方法中。

我强烈推荐此页面关于 JUnit antipatterns 。保持测试精神!

关于java - 使用仪器框架进行单元测试时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17745812/

相关文章:

Python:使用用于单元测试的文件创建模拟或假目录

java - Java 有没有支持一年中的季度和星期的 DateTime 库?

java - Gradle 不支持强制依赖版本

Android 使用 StaggeredGridLayoutManager 缩放 RecyclerView 的项目高度以匹配列宽

android - 我如何将 adView 绘制到 SurfaceView Canvas 上

javascript - Jest 模拟约会不能在不同的环境中工作

java - 允许用户在Java中搜索和删除ArrayList中的对象

java - 删除列表中包含某些单词的项目的有效方法?

android - 如何在 Espresso 测试期间处理(关闭)插页式广告

基于参数值的 C++ 假/模拟返回值