簡體   English   中英

Espresso測試android

[英]Espresso testing android

我在Android Studio中運行測試,運行任務-“測試”。 我的測試失敗,我的HTML報告詳細說明:

   junit.framework.AssertionFailedError: Class Test has no public constructor TestCase(String name) or TestCase()
        at junit.framework.Assert.fail(Assert.java:57)
        at junit.framework.TestCase.fail(TestCase.java:227)
        at junit.framework.TestSuite$1.runTest(TestSuite.java:100)
        at junit.framework.TestCase.runBare(TestCase.java:141)
        at junit.framework.TestResult$1.protect(TestResult.java:122)
        at junit.framework.TestResult.runProtected(TestResult.java:142)
        at junit.framework.TestResult.run(TestResult.java:125)
        at junit.framework.TestCase.run(TestCase.java:129)
        at junit.framework.TestSuite.runTest(TestSuite.java:255)
        at junit.framework.TestSuite.run(TestSuite.java:250)
        at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:84)

我的源文件:

    @LargeTest
public class Test extends ActivityInstrumentationTestCase2<MainActivity>{

    public Test(Class <MainActivity> activityClass) {
        super(activityClass);
    }

    @Override
    public void setUp() throws Exception {
        super.setUp();
        getActivity();
    }

    public void testCheck(){
        onView(withId(R.id.text))
                .check(matches(withText("Hello world!")));
    }
}

問題恰恰是錯誤消息說的是:您沒有提供無參數的構造函數。

將此構造函數添加到您的測試類中:

public Test() {
    super(MainActivity.class);
}

帶有espresso的測試類的原型應為:

public class MainTest extends
        ActivityInstrumentationTestCase2<MainActivity>{

    public MainTest() {
        super(MainActivity.class);
    }

    @Override
    public void setUp(){
        getActivity();
    }

    @Override
    public void tearDown(){
    }

    public void test1(){

    }

    public void test2(){

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM