gpt4 book ai didi

android - 在 Junit for Android 中使用 FEST-assert 的正确方法?

转载 作者:行者123 更新时间:2023-11-29 01:56:48 25 4
gpt4 key购买 nike

我是 Android 上 JUnit 和 FEST 的新手。我正在尝试使用 FEST-Android在我的类里面,但在编译时不断出错:

Android Dex: [ZHoltoTest] trouble processing "javax/xml/parsers/DocumentBuilder.class":
Android Dex: [ZHoltoTest] Ill-advised or mistaken usage of a core class (java.* or javax.*)
Android Dex: [ZHoltoTest] when not building a core library.
Android Dex: [ZHoltoTest] This is often due to inadvertently including a core library file

到目前为止,在没有 FEST 库的情况下,我已经成功地创建了一个简单的类,如下所示。

package com.monster.beta.tests;

import android.graphics.Rect;
import android.test.ActivityInstrumentationTestCase2;
import android.widget.Button;
import com.monster.beta.R;
import com.monster.beta.activity.WelcomeActivity;

public class WelcomeActivityTest extends ActivityInstrumentationTestCase2<WelcomeActivity> {
WelcomeActivity activity;
public WelcomeActivityTest() {
super("com.monster.beta", WelcomeActivity.class);

}
protected void setUp() throws Exception {
super.setUp();
activity = getActivity();
}

public void testCloseWording(){
Button btnSync = (Button) activity.findViewById(R.id.btnClose);

assertTrue("Text is<" + btnSync.getText().toString() + "> expect<close me>", "close me".equalsIgnoreCase(btnSync.getText().toString()));
}

public void testCloseBtn(){
Button btnSync = (Button) activity.findViewById(R.id.btnClose);
btnSync.callOnClick();

int btnSyncLoc[] = new int[2];
btnSync.getLocationOnScreen(btnSyncLoc);

Rect btnRect = new Rect();
btnSync.getDrawingRect(btnRect);

assertTrue("btnSyncLoc is<" + btnSyncLoc[0] + "> not less than hundred", (btnSyncLoc[0] < 100));
}

public void testCloseBtn2(){
Button btnSync = (Button) activity.findViewById(R.id.btnClose);

int btnSyncLoc[] = new int[2];
btnSync.getLocationOnScreen(btnSyncLoc);

Rect btnRect = new Rect();
btnSync.getDrawingRect(btnRect);

assertTrue("btnSyncLoc is<" + btnSyncLoc[1] + "> not less than hundred", (btnSyncLoc[1] < 100));
}

}

当我使用 Maven 将 FEST-Android 库包含到测试项目中时,错误就出现了(我不熟悉 Maven,但直接下载 jar 不适合我)。

这里是FEST-Android 1.0.1包里面的内容

C:\Users\poohdish.SPHINXPARTNERS\git\FEST-Android\android-4.1.1.4.jar
C:\Users\poohdish.SPHINXPARTNERS\git\FEST-Android\commons-codec-1.3.jar
C:\Users\poohdish.SPHINXPARTNERS\git\FEST-Android\commons-logging-1.1.1.jar
C:\Users\poohdish.SPHINXPARTNERS\git\FEST-Android\fest-android-1.0.1.jar
C:\Users\poohdish.SPHINXPARTNERS\git\FEST-Android\fest-assert-core-2.0M8.jar
C:\Users\poohdish.SPHINXPARTNERS\git\FEST-Android\fest-util-1.2.3.jar
C:\Users\poohdish.SPHINXPARTNERS\git\FEST-Android\httpclient-4.0.1.jar
C:\Users\poohdish.SPHINXPARTNERS\git\FEST-Android\httpcore-4.0.1.jar
C:\Users\poohdish.SPHINXPARTNERS\git\FEST-Android\json-20080701.jar
C:\Users\poohdish.SPHINXPARTNERS\git\FEST-Android\opengl-api-gl1.1-android-2.1_r1.jar
C:\Users\poohdish.SPHINXPARTNERS\git\FEST-Android\support-v4-r7.jar
C:\Users\poohdish.SPHINXPARTNERS\git\FEST-Android\xmlParserAPIs-2.6.2.jar
C:\Users\poohdish.SPHINXPARTNERS\git\FEST-Android\xpp3-1.1.4c.jar

我需要删除一些东西吗?我的项目使用 ActionBarSherlock,为了让 JUnit 正常工作,我还需要导出项目使用的所有库。

最佳答案

您正在尝试将核心 java 类添加到 android 应用程序。不要这样做。您的类路径中不需要 XML API。 Android jar 包含您在那里需要的所有 XML API。

我敢说列表中唯一需要打包的库是 android-support-v4

此外,如果您使用的是 eclipse,请记住它只有一个类路径作用域。没有单独的测试范围。

关于android - 在 Junit for Android 中使用 FEST-assert 的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14724479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com