問題タブ [spring-test-mvc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Powermockを使用したSpringコントローラーのテスト
特定のコントローラーをテストするクラスがあり、正常に動作します
私はそこでmockito.orgのGoogleのMockitoライブラリを使用して、基になるBeanをモックしました。
今私の質問は次のとおりです。モックする必要のあるクラスがいくつかありますが、それらにはfinal
メソッドがあり、Googleのモックはこの問題を解決していないようです。私の同僚の1人が、powermock.orgのPowermockを使用することを提案しました。ただし、テスタークラスにアノテーションを付ける必要があり@RunWith(PowerMockRunner.class)
ます。これを使用する場合、アノテーションを削除する必要があります@RunWith(SpringJUnit4ClassRunner.class)
。これにより、Springテストコンテキストが作成されないという問題が発生します。この状況を回避するにはどうすればよいですか?
提案後、注釈PowerMockRule
の代わりに使用するように構成しました@RunWith
私のプロジェクトMavenの依存関係は次のとおりです
今、私のクラスは次のようになっています(別のコントローラーテスト)
しかし、テストを実行した後、次の例外トレースが表示されます
com.thoughtworks.xstream.converters.ConversionException:javassist.NotFoundException:com.somecompany.analytics.manager.db.api.MlDao $$ EnhancerByMockitoWithCGLIB $$ b86d7415:javassist.NotFoundException:com.somecompany.analytics.manager.db.api。 MlDao $$ EnhancerByMockitoWithCGLIB $$ b86d7415 ----デバッグ情報----メッセージ:javassist.NotFoundException:com.somecompany.analytics.manager.db.api.MlDao $$ EnhancerByMockitoWithCGLIB $$ b86d7415原因-例外:java.lang。 RuntimeExceptionの原因メッセージ:javassist.NotFoundException:com.somecompany.analytics.manager.db.api.MlDao $$ EnhancerByMockitoWithCGLIB $$ b86d7415クラス:com.somecompany.ui.controllers.ThirdPartyLoginController必須タイプ:com.somecompany.ui.controllers .ThirdPartyLoginControllerコンバータータイプ:com.thoughtworks。xstream.converters.reflection.ReflectionConverterパス:/org.powermock.modules.junit4.rule.PowerMockStatement $ 1 / external-class / fNext / fTarget / thirtPartyLoginController / mlDao行番号:14クラス1 :com.somecompany.ui.controllers.ThirdPartyLoginControllerTestクラス2 :org.junit.internal.runners.statements.InvokeMethod class [3]
:org.powermock.modules.junit4.rule.PowerMockStatement class [4]
:org.powermock。 modules.junit4.rule.PowerMockStatement$1バージョン
:null ------------------------------- at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java: 79)com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)at com.thoughtworks.xstream.converters.reflection .AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:355)at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:306)at com.thoughtworks.xstream.converters.Reflect.AbstractRefl :234)com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)atcom。thinkworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshall AbstractReflectionConverter.java:355)at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:306)at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter。 .thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)atcom.thoughtworks.xstream.core。TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:355)at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal 306)com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234)at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)at com.thoughtworks.xstream.core .AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)atcom.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter。unmarshallField(AbstractReflectionConverter.java:355)at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:306)at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(Abs com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother (TreeUnmarshaller.java:66)at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)atcom.thoughtworks。 xstream.core。AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1052)at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1036)at com.thoughtworks.xstream .XStream.fromXML(XStream.java:912)at com.thoughtworks.xstream.XStream.fromXML(XStream.java:903)at org.powermock.classloading.DeepCloner.clone(DeepCloner.java:54)atorg.powermock。 classloading.ClassloaderExecutor.execute(ClassloaderExecutor.java:89)at org.powermock.classloading.ClassloaderExecutor.execute(ClassloaderExecutor.java:78)at org.powermock.modules.junit4.rule.PowerMockStatement.evaluate(PowerMockRule.java:49) org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:74)でorg。springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:82)at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:72)atorg.springframework.test。 context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:240)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)at org.junit.runners.ParentRunner $ 3.run(ParentRunner.java:238)at org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:63)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)at org.junit.runners.ParentRunner.access $ 000(ParentRunner.java: 53)org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:229)atorg.springframework.test.context.junit4.statements。RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)at org.junit.runners.ParentRunner.run(ParentRunner.java:309) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:180)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)org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)原因:java.lang.RuntimeException:javassist.NotFoundException:com.somecompany.idm.analytics.manager.db。 api.MlDao $$ EnhancerByMockitoWithCGLIB $$ b86d7415 at org.powermock.core.classloader.MockClassLoader.loadUnmockedClass(MockClassLoader.java:199)at org.powermock.core.classloader.MockClassLoader.loadModifiedClass(MockClassLoader.java:149)atorg。 powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:67)at java.lang.ClassLoader.loadClass(ClassLoader.java:356)at com.thoughtworks.xstream.core.util.ClassLoaderReference.loadClass(ClassLoaderReference.java: 31)com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:49)のcom.thoughtworksで。xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:55)at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java: 30)com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)at com.thoughtworks.xstream.mapper.ClassAliasingMapper .realClass(ClassAliasingMapper.java:79)at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)atcom。 thinkworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)(com.thoughtworks.xstream.mapper.MapperWrapper)。realClass(MapperWrapper.java:30)at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)at com.thoughtworks .xstream.mapper.ArrayMapper.realClass(ArrayMapper.java:74)at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java :30)com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)atcom.thoughtworks.xstream.mapper。 MapperWrapper.realClass(MapperWrapper.java:30)at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)atcom.thoughtworks.xstream。mapper.MapperWrapper.realClass(MapperWrapper.java:30)at com.thoughtworks.xstream.mapper.CachingMapper.realClass(CachingMapper.java:45)at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.determineType(AbstractReflectionConverter.java: 458)com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234)at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:294)at com.thought .core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)... 57 more原因:javassist.NotFoundException:com.somecompany.analytics.manager.db.api.MlDao $$ EnhancerByMockitoWithCGLIB $$ b86d7415 at javassist.ClassPool.get (ClassPool.java:450)org.powermock.coreで。classloader.MockClassLoader.loadUnmockedClass(MockClassLoader.java:192)...87詳細
spring - 不可解な問題: RequestMappingHandlerAdapter: コンストラクターが例外をスローしました。ネストされた例外は java.lang.NullPointerException です
spring-mvc-test と次のテスト クラスで不可解な問題が発生しています。
mvc-dispatcher-servlet.xmlは次のとおりです。
最後に、スタックトレースは次のとおりです。
アプリはブラウザから正常に実行されることに注意してください。この問題は、上記のテスト クラスを実行した場合にのみ発生します。
spring - この Spring Test Framework テストを JSON リターンで動作するように変更するにはどうすればよいですか?
次の json の戻り値をテストするために、次の Spring Test Framework を変更しようとしています。
これが私のテストコードです.JSONとJSONの値をチェックするためにコードを変更する方法がわかりません. 誰かが私に何を変えるべきか教えてくれたら素晴らしい..ありがとう
java - @Autowired フィールドを使用して Spring Controller をテストすると、フィールドに null が返されますが、コントローラーは取得されます
こんにちは、あざけることなくテストしようとしているコントローラーがあります。
テスト クラス:
テストを通じてデバッグすると、コントローラーの値が取得されますが、自動配線されたサービス 1 と 2 の値は null です。
xml ファイルには、すべてのサービスとコントローラーの基本パッケージが含まれています。<context: component-scan>
削除すると、Bean の作成中にエラーが発生します。サービス基本パッケージの 1 つを削除しても。
構成に追加する必要がある特定のテストはありますか?
タイプ1:
オートワイヤーされる Type1 実装クラスは次のとおりです。
template-engine - Spring 3.2 テスト フレームワークを使用したテスト実行環境から Thymeleaf でテンプレートを解決する際のエラー
Webレイヤーで実際の統合テストを行うために、Spring 3.2テストフレームワークの新機能を使用しようとしています. テンプレートエンジンがテンプレート名を解決できないと文句を言うため、Spring 3.2 で「SpringJUnit4ClassRunner」を使用してテストをトリガーすると、問題が発生します。
もちろん、エンジンは /WEB-INF/views/mobile/index.html の周りのリソースを検索しています。これは、通常の実行モードでは正しいのですが、クラスパスのテスト実行環境に沿って次のように存在しません: *classpath (src/test/resources) Maven ベースのプロジェクト * /WEB-INF/views/mobile/index.html
テストクラスパスで各htmlビューのコピーを維持しないために、エンジンに「実際のパス」からリソースを取得させる方法はありますか?
前もって感謝します、
rest - 安らかなサービスをテストする Junit
Rest サービスをオフラインでテストするための junit を作成しました。restful コントローラーの junit は、dispatcherservletinstance の作成に使用される AbstractControllerTestSupport を拡張します。
以下は私のローダークラスです。
テストはSpringバージョン3.0で正常に実行されます。ただし、Spring 3.2.xに移行すると、「型MockWebContextLoaderは継承された抽象メソッドSmartContextLoader.loadContext(MergedContextConfiguration)を実装する必要があります」というエラーが表示されます.これは、3.2.2「AbstractContextLoader " は "SmartContextLoader" を実装します。
回避策を教えてもらえますか?