Junit4でSpring-retry式が失敗する

Abhradeep kundu

このサービスは、通常のスプリングブートアプリで完全に機能しています。しかし、junitの実行中に例外が発生します。以下は私の例外の詳細です...

    org.springframework.expression.spel.SpelEvaluationException: EL1001E: Type conversion problem, cannot convert from java.lang.String to java.lang.Integer
        at org.springframework.expression.spel.support.StandardTypeConverter.convertValue(StandardTypeConverter.java:75)
        at org.springframework.expression.common.ExpressionUtils.convertTypedValue(ExpressionUtils.java:57)
        at org.springframework.expression.common.LiteralExpression.getValue(LiteralExpression.java:92)
        at org.springframework.retry.annotation.AnnotationAwareRetryOperationsInterceptor.getRetryPolicy(AnnotationAwareRetryOperationsInterceptor.java:303)
        ...

        at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74)
        at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84)
        at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
        at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
        at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
        at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)
        at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
        ...
org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
        at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
        at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:86)
        at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
        at 
...
    Caused by: org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.lang.Integer] for value '${max.read.attempts}'; nested exception is java.lang.NumberFormatException: For input string: "${max.read.attempts}"
        at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:46)
        at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:191)
        at org.springframework.expression.spel.support.StandardTypeConverter.convertValue(StandardTypeConverter.java:70)
        ... 41 more
    Caused by: java.lang.NumberFormatException: For input string: "${max.read.attempts}"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:569)
        at java.lang.Integer.valueOf(Integer.java:766)
        at org.springframework.util.NumberUtils.parseNumber(NumberUtils.java:210)
        at org.springframework.core.convert.support.StringToNumberConverterFactory$StringToNumber.convert(StringToNumberConverterFactory.java:62)
        at org.springframework.core.convert.support.StringToNumberConverterFactory$StringToNumber.convert(StringToNumberConverterFactory.java:49)
        at org.springframework.core.convert.support.GenericConversionService$ConverterFactoryAdapter.convert(GenericConversionService.java:436)
        at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:40)
        ... 43 more

私のサービスでは、以下のような再試行可能なタグがあります。このサービスは、Spring-boot restapisに注入されています。ただし、このサービスを個別にテストしたいと思います。

@Retryable(maxAttemptsExpression = "$ {max.read.attempts}"、value = {IOException.class}、backoff = @backoff(delayExpression = "$ {retry.delay}"))

そして私のテストケースは次のとおりです。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class ConfigInvokeServiceTest {

@Autowired
@Qualifier("configService")
ConfigInvokeService configInvokeService;

@Test
public void invoke() throws ClientProtocolException, IOException {
    String message = configInvokeService.invoke();
    verify(configInvokeService, times(3)).invoke();
    assertThat(message, is("Completed"));
}

@Configuration
@EnableRetry
public static class SpringConfig {
    @Bean(name = "configService")
    public ConfigInvokeService configInvokeService() throws Exception {
        ConfigInvokeService remoteService = mock(ConfigInvokeService.class);
        when(remoteService.invoke())
                .thenThrow(new RuntimeException("Remote Exception 1"))
                .thenThrow(new RuntimeException("Remote Exception 2"))
                .thenReturn("Completed");
        return remoteService;
    }
}
}
ゲーリーラッセル

Spring Bootアプリの場合@SpringBootTestは、ブートプロパティがテストケースに読み込まれるように使用します。

そうしないと、あなたは追加する必要がありますPropertyPlaceHolderConfigurer @BeanあなたにSpringConfigプロパティファイルへのポインタと一緒に。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Junit4をテストするための関数でプライベート変数をからかっ

分類Dev

IEEE 754で数式が失敗する確率

分類Dev

Android Studio 1.1で簡単なJUnit4テストを実行する方法

分類Dev

JUnit4でテストメソッドを特定の順序で実行する方法

分類Dev

アサートの1つが失敗した場合でもjunit4でテスト実行を継続する

分類Dev

junit4がdouble [] sに対してAssert.assertArrayEquals()を持たないのはなぜですか?

分類Dev

Junit4:expected = ExceptionがSPRINGで機能しない

分類Dev

Junit4 + Spring 2.5:アサートが「NoClassDefFoundError」をスローする

分類Dev

Eclipse JUnit4 RunnerがMETA-INF / servicesファイルを取得しないのはなぜですか

分類Dev

JUnit Spring 4 MVC統合テストがBeanCreationExceptionで失敗する:Beanの作成エラー

分類Dev

2つのリストのアサートはJUnit4で同じです

分類Dev

JsonTestでSpring Autoconfigurationが失敗する

分類Dev

JUnit4でClassRuleを使用してSpring Bootサーバーを起動する方法

分類Dev

JUnit4とMockitoでSQLiteOpenHelperテストケースを作成する

分類Dev

pyparsingで「OneOrMore」が複数の式で失敗するのはなぜですか?

分類Dev

JUnit 4 ExpectedException.expectMessageはテストに失敗するはずですが、失敗しません

分類Dev

cron式がawslambdaで失敗する

分類Dev

SQLServerレポート式がNULLint値で失敗する

分類Dev

ggplotでの凡例のマージが特定の式で失敗する

分類Dev

JUnit4テストに失敗した場合に `groovy`コマンドをゼロ以外に終了させるにはどうすればよいですか?

分類Dev

junit4 / testcontainersで@Testcontainers(disabledWithoutDocker = true)の動作を取得する方法

分類Dev

EclipseがJUnit4を使用する必要があるのにJUnit5を使用しようとするのはなぜですか?

分類Dev

式の抽出がscalaで失敗する

分類Dev

Mockito 3.6:JUnit4で@Beforeまたは@BeforeClassでmockStaticを使用する

分類Dev

EclipseでJUnit4にアップグレードする

分類Dev

Junit 認証 SpringRest が失敗する

分類Dev

JUnit4でassertThatを使用する

分類Dev

JUnit / Spring / MongoDB:null値が原因でユニットテストが失敗する

分類Dev

JUnit4テストの失敗を理解していますか?

Related 関連記事

  1. 1

    Junit4をテストするための関数でプライベート変数をからかっ

  2. 2

    IEEE 754で数式が失敗する確率

  3. 3

    Android Studio 1.1で簡単なJUnit4テストを実行する方法

  4. 4

    JUnit4でテストメソッドを特定の順序で実行する方法

  5. 5

    アサートの1つが失敗した場合でもjunit4でテスト実行を継続する

  6. 6

    junit4がdouble [] sに対してAssert.assertArrayEquals()を持たないのはなぜですか?

  7. 7

    Junit4:expected = ExceptionがSPRINGで機能しない

  8. 8

    Junit4 + Spring 2.5:アサートが「NoClassDefFoundError」をスローする

  9. 9

    Eclipse JUnit4 RunnerがMETA-INF / servicesファイルを取得しないのはなぜですか

  10. 10

    JUnit Spring 4 MVC統合テストがBeanCreationExceptionで失敗する:Beanの作成エラー

  11. 11

    2つのリストのアサートはJUnit4で同じです

  12. 12

    JsonTestでSpring Autoconfigurationが失敗する

  13. 13

    JUnit4でClassRuleを使用してSpring Bootサーバーを起動する方法

  14. 14

    JUnit4とMockitoでSQLiteOpenHelperテストケースを作成する

  15. 15

    pyparsingで「OneOrMore」が複数の式で失敗するのはなぜですか?

  16. 16

    JUnit 4 ExpectedException.expectMessageはテストに失敗するはずですが、失敗しません

  17. 17

    cron式がawslambdaで失敗する

  18. 18

    SQLServerレポート式がNULLint値で失敗する

  19. 19

    ggplotでの凡例のマージが特定の式で失敗する

  20. 20

    JUnit4テストに失敗した場合に `groovy`コマンドをゼロ以外に終了させるにはどうすればよいですか?

  21. 21

    junit4 / testcontainersで@Testcontainers(disabledWithoutDocker = true)の動作を取得する方法

  22. 22

    EclipseがJUnit4を使用する必要があるのにJUnit5を使用しようとするのはなぜですか?

  23. 23

    式の抽出がscalaで失敗する

  24. 24

    Mockito 3.6:JUnit4で@Beforeまたは@BeforeClassでmockStaticを使用する

  25. 25

    EclipseでJUnit4にアップグレードする

  26. 26

    Junit 認証 SpringRest が失敗する

  27. 27

    JUnit4でassertThatを使用する

  28. 28

    JUnit / Spring / MongoDB:null値が原因でユニットテストが失敗する

  29. 29

    JUnit4テストの失敗を理解していますか?

ホットタグ

アーカイブ