【发布时间】:2023-03-24 16:50:02
【问题描述】:
我需要覆盖我的 application.properties 文件中指定的命令超时属性。这是我尝试过的
@Test
public void testTokenQueryTimeout() throws Exception
{
String propertyToSet ="hystrix.command.quickbaseTokenQueryCommand.execution.isolation.thread.timeoutInMilliseconds";
String prop="";
try {
prop = ConfigurationManager.getConfigInstance().getProperty(
propertyToSet).toString();
logger.info("\n\n\noriginal quickbaseTokenQueryCommand timeout ="+prop);
System.setProperty(
propertyToSet,"10");
prop = ConfigurationManager.getConfigInstance().getProperty(
propertyToSet).toString();
logger.info("\n\n\nupdated quickbaseTokenQueryCommand timeout ="+prop);
String response = accountValidation.isValidToken(token);
logger.info(response);
Assert.assertFalse(true);
}
catch (AccountValidationServiceException e)
{
Assert.assertTrue(Constants.ERRCODE_TOKEN_QUERY_TIMED_OUT.equals(e.getErrorCode()));
}
finally {
ConfigurationManager.getConfigInstance().clearProperty(propertyToSet);
System.clearProperty(propertyToSet);
if(!GeneralUtil.isObjectEmpty(System.getProperty(
propertyToSet)))prop = System.getProperty(
propertyToSet);
logger.info("Updated testTokenQueryTimeout timeout ="+prop);
}
}
注意,System.setProperty(propertyToSet,"10")。使用这种方法,这个测试用例通过了,即属性被更改并且命令超时,但是另一个测试用例由于这个命令超时而失败,尽管我正在从系统中清除属性。
我还尝试使用 ConfigurationManager.getConfigInstance().setProperty( propertyToSet).toString(),"10");但是在那种情况下,这个属性的改变是没有效果的,命令也不会超时。
这里有什么我遗漏的吗?
请帮忙。
【问题讨论】:
标签: hystrix