文字列リソースを取得することが同等でなければならないと思っていることをテストしたいだけです。私の問題は、自分のプロジェクトにレルムがあることにあるようです。私はRobolectricがRealmをサポートしていないことを知っていますが、それはRealmを呼び出すわけではないので、これを行う方法があるように感じます。Android - Robolectricで文字列リソースをテストする
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import static org.junit.Assert.assertEquals;
@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21, manifest = "app/src/main/AndroidManifest.xml")
public class ResourceTester {
@Test
public void testingString() {
String resourceString = RuntimeEnvironment.application.getString(R.string.app_name);
assertEquals(resourceString, "Yeah");
}
}
ががレルムに起動しようとしているみたいに見えるん
java.lang.UnsatisfiedLinkError: Can't load library:
/var/folders/3x/ddxtg5fs1hxgqrp6h63vsc140000gp/T/android-tmp-
robolectric3612430387389787158/app_lib/librealm-jni.dylib.3.5.0
EDIT:は、私はいくつかのより多くの事を試みたが、それは@Config注釈にmanifest
を設定することのように思えます問題が、その後私は得るandroid.content.res.Resources$NotFoundException: unknown resource 2131362072
他の考えですか? Realm
が呼び出されていない別のアプリケーションクラスを作成できますか?/testディレクトリはそれをどのように知っていますか? DAVID FOR
EDIT:
私はこの試みた:
@RunWith(RobolectricGradleTestRunner.class)
@Config(application = TestingApplication.class, constants = BuildConfig.class, sdk = 21)
public class ResourceTester {
@Test
public void newTestingTests() throws Exception {
String appName = RuntimeEnvironment.application.getString(R.string.app_name);
}
}
を私は得る:
android.content.res.Resources$NotFoundException: unknown resource 2131362072
私は
@RunWith(RobolectricTestRunner.class)
//@RunWith(RobolectricGradleTestRunner.class)
@Config(application = TestingApplication.class, constants = BuildConfig.class, sdk = 21)
public class ResourceTester {
@Test
public void newTestingTests() throws Exception {
String appName = RuntimeEnvironment.application.getString(R.string.app_name);
}
}
に変更した場合210
あなたはヘビー級Applicationクラス(例えば、レルムの依存関係を持つ、Crashlyticsなど)を持っているし、あなたのユニットテストは、あなたがあなたのアプリケーションクラスとしてandroid.app.Application
使用することができ、これらを参照していない場合、私は
WARNING: No manifest file found at ./AndroidManifest.xml.Falling back to the Android OS resources only.
To remove this warning, annotate your test class with @Config(manifest=Config.NONE).
android.content.res.Resources$NotFoundException: unknown resource 2131362072
Robolectricのバージョンはこれですか? – EpicPandaForce
@EpicPandaForce私は現在robolectric 3.0を使用していますが、3.0以上のバージョンを使用しても構いません。 – EGHDK
Robolectricが呼び出すカスタムアプリケーションクラスがあり、そのクラスはテスト中にRealm.init(Context)を呼び出しますか? – EpicPandaForce