के साथ कुछ विफल रहा है, मैं रोबोगुइस 2 के लिए एस्ट्रोबॉय उदाहरण कोड और दस्तावेज़ीकरण देख रहा हूं, और मैं ईमानदारी से स्टंप हूं। मुझे उम्मीद है कि आप सभी कोशिश करने के लिए चीजों के साथ मेरी मदद कर सकते हैं। यहां लक्ष्य यह सुनिश्चित करने के लिए मॉड्यूल का परीक्षण करना है कि यह लोड हो रहा है और आईओसी काम कर रहा है/वायर्ड हो रहा है।यूनिट परीक्षण करने का प्रयास कर रहा है और RoboGuice.newDefaultRoboModule() Roboguice 2.0b3 और Robolectric
मैं एक परीक्षण है कि उनके उदाहरण की तरह है: http://code.google.com/p/roboguice/source/browse/astroboy/src/test/java/org/roboguice/astroboy/controller/Astroboy2Test.java?name=roboguice-2.0b3&r=ba37ef680410c64f7f1fe90f5b7b482958d276b5
खान दो तरह से अलग है ... मेरी मॉड्यूल एक पुस्तकालय वर्ग है, जो वाक्य रचना से समान है में है:
public class MyTestModule extends AbstractModule {
@Override
protected void configure() {
bind(Vibrator.class).toInstance(vibratorMock);
}
}
मैं भी मूल्य फ़ोल्डर
<resources>
<string-array name=roboguice_modules>
<item>com.yourdomain.MyTestModule</item>
</string-array>
<resources>
परीक्षण परियोजना का संदर्भ एप्लिकेशन परियोजना में पुस्तकालय कक्षा में roboguice.xml है, जो एच संदर्भ और पुस्तकालय परियोजना निर्यात करता है।
परीक्षण परियोजना यह इतना की तरह है में:
@RunWith(RobolectricTestRunner.class)
public class MyTest {
@Before
public void setup() {
// Override the default RoboGuice module
RoboGuice.setBaseApplicationInjector(Robolectric.application, RoboGuice.DEFAULT_STAGE, Modules.override(RoboGuice.newDefaultRoboModule(Robolectric.application)).with(new MyTestModule()));
}
सेटअप के दौरान, यह हमेशा अशक्त अपवाद के कुछ प्रकार के साथ त्रुटियों। मैंने इसे तोड़ दिया है, और विशेष रूप से newDefaultRoboModule विधि के साथ। मुझे पता है कि Robolectric.application शून्य नहीं है, और मुझे पता है कि नया MyTestModule या तो शून्य नहीं है। हालांकि डीबगर के माध्यम से कदम उठाने पर, मैंने पाया कि MyTestModule.binder शून्य है, इसलिए मुझे नहीं पता कि यह कोई समस्या है या नहीं।
त्रुटि स्टैक ट्रेस:
java.lang.NoClassDefFoundError: javax/inject/Provider
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at javassist.Loader.findClass(Loader.java:379)
at com.xtremelabs.robolectric.bytecode.RobolectricClassLoader.findClass(RobolectricClassLoader.java:72)
at javassist.Loader.loadClass(Loader.java:311)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.xtremelabs.robolectric.bytecode.RobolectricClassLoader.loadClass(RobolectricClassLoader.java:49)
at roboguice.RoboGuice.newDefaultRoboModule(RoboGuice.java:144)
at test.yourdomain.MyTest.setup(MyTest.java:45)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:30)
at com.xtremelabs.robolectric.RobolectricTestRunner$1.evaluate(RobolectricTestRunner.java:284)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222)
at org.junit.runners.ParentRunner.run(ParentRunner.java:300)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.ClassNotFoundException: javax.inject.Provider
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at javassist.Loader.delegateToParent(Loader.java:428)
at javassist.Loader.loadClassByDelegation(Loader.java:406)
at javassist.Loader.loadClass(Loader.java:308)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.xtremelabs.robolectric.bytecode.RobolectricClassLoader.loadClass(RobolectricClassLoader.java:49)
... 36 more
और कहाँ मैं देखना चाहिए? मुझे लगता है कि यह सब कैसे परीक्षण के माध्यम से बंधे हैं।
देख के लिए धन्यवाद, केली
तो मुद्दा प्रदाता के इंजेक्शन है, जो एक guice 3.0 वर्ग है साथ रहती है। क्या इसका मतलब है कि मुझे प्रदाता को इंजेक्ट करने की ज़रूरत है? मैंने सोचा था कि इन सभी चीजों के साथ रोबोगुइस को तार दिया गया था। रोबोगुइस 2 और यूनिट परीक्षण के साथ आप क्या करते हैं? – KellyTheDev
मामूली अद्यतन। उदास: मैं कभी भी काम करने के लिए roboguice प्राप्त करने में सक्षम नहीं था। और आगे बहुत पीछे जाने के बाद, मैं roboguice 1.1.2 और कोई roboletric का उपयोग करने के लिए डाउनग्रेडिंग घायल हो गया। मेरी इच्छा है कि इस मोर्चे में और अधिक समर्थन हो, लेकिन कम से कम यूनिट परीक्षण चल रहे हैं। वापस देखकर और अब मुझे क्या करना है, मुझे लगता है कि मुझे प्रदाता को परीक्षण समय पर परीक्षण में इंजेक्ट करना होगा, लेकिन मुझे नहीं पता। मुझे अभी भी यह जानना अच्छा लगेगा कि अगर किसी के पास विचार है तो ऊपर का उपयोग कैसे करें। अगर कोई मुझे ब्राउजुइस 1.1.2 और एंड्रॉइड के लिए जो कुछ भी करता है, उसे साझा करना चाहता है तो मैं भी खुश हूं। मुझे निजी संदेश भेजो। – KellyTheDev
क्या आपने कभी रोबोगुइस आपूर्ति नमूना आवेदन और यह कैसे सेटअप किया है देखा है। यह सब वहाँ है .. –