Мне не удалось загрузить приложение контекста.Класс, расширяющий AbstractTestNGSpringContextTests, который является applicationcontextaware.Любая помощь, что здесь не хватает?Это простой файл весеннего теста.Я использую весеннюю загрузку.Нужно ли что-нибудь установить для конфигурации, чтобы получить applicationcontext.
java.lang.IllegalStateException: Failed to load ApplicationContext
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125)
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:117)
at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83)
at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:246)
at org.springframework.test.context.testng.AbstractTestNGSpringContextTests.springTestContextPrepareTestInstance(AbstractTestNGSpringContextTests.java:145)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:85)
at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:510)
at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:211)
Вот тестовый класс
@SuppressWarnings("unchecked")
public class AesGcmDynamoCryptoCipherProviderTest extends AbstractTestNGSpringContextTests {
@Mock
AwsCrypto awsCrypto;
@Mock
DynamoDBProvider dynamoDBProvider;
@Mock
MasterKeyProvider masterKeyProvider;
@Mock
Table table;
@Autowired
ApplicationContext applicationContext;
private static <T> CryptoResult<T, ?> mockCryptoResult(T result) {
CryptoResult<T, ?> cryptoResult = mock(CryptoResult.class);
when(cryptoResult.getResult()).thenReturn(result);
return cryptoResult;
}
@BeforeMethod
private void init() {
MockitoAnnotations.initMocks(this);
when(dynamoDBProvider.getDynamoDB()).thenReturn(mock(DynamoDB.class));
when(dynamoDBProvider.getDynamoDB().getTable(anyString())).thenReturn(table);
CryptoResult<String, ?> decryptoResult = mockCryptoResult(Base64.getEncoder().encodeToString("*decrypted*".getBytes()));
when(awsCrypto.decryptString(eq(masterKeyProvider), anyString())).thenReturn(decryptoResult);
CryptoResult<String, ?> encryptoResult = mockCryptoResult("*encrypted*");
when(awsCrypto.encryptString(eq(masterKeyProvider), anyString())).thenReturn(encryptoResult);
}
@Test
public void testGetCipher() {
AesGcmDynamoCryptoCipherProvider provider = new AesGcmDynamoCryptoCipherProvider("table", awsCrypto, dynamoDBProvider, masterKeyProvider);
UUID cipherId = UUID.randomUUID();
Item cipherItem = mockCipherItem(cipherId);
when(table.getItem(eq("KEY_ID"), eq(cipherId.toString()))).thenReturn(cipherItem);
AesGcmCipher cipher = provider.getCipher(cipherId);
assertNotNull(cipher);
assertEquals(cipher.getCipherId(), cipherId);
}
}