gpt4 book ai didi

java - 测试期间未正确读取 MessageSource

转载 作者:搜寻专家 更新时间:2023-10-31 19:53:04 25 4
gpt4 key购买 nike

我已经检查过大多数类似的问题,但找不到有用的答案。

我正在使用 Maven v3.3.9 通过 JHipster 创建一个 WebApplication。除其他事项外,还发生了 PDF 生成。该网络应用程序是多语言的,并使用

/resources/i18n/..

不同翻译的资源文件。在现场测试中,一切都完美无缺,没有任何问题或错误。

我现在正在尝试创建一个测试,该测试将生成 PDF 并将其与现有 PDF 进行比较,以便继续开发。问题是,无论我使用哪种语言环境进行测试,我都会得到相同的错误:

org.springframeworkcontext.NoSuchMessageException: No message found under code 'pdf.klasse' for locale 'de'

我不确定错误的原因是什么。由于消息在那里并且在实时测试期间它们完美地工作。

测试代码如下:

@RunWith(SpringRunner.class)
@SpringBootTest(classes = DeviceDataCheckApp.class)
public class PDFGeneratorTest
{
private MockMvc mockMvc;

private CalculationMapperImpl calculationMapperImpl;

private Calculation calculation;
private CalculationDTO calculationDTO;
private CalculationResult calculationResult;
private String langval = "de";
private String name = "";

private PDFGenerator pdfGenerator;

@Autowired
private MessageSource messageSource;

@Autowired
private WebApplicationContext webApplicationContext;

@Before
public void setup() throws IOException, URISyntaxException, IllegalAccessException, InstantiationException
{
mockMvc = MockMvcBuilders.webAppContextSetup(webApplicationContext).build();

calculation = new Calculation()
.producerName("test")
.airVolumeSupply(2.0)
.airVolumeExhaust(2.0)
.statedAirVelocitySupply(2.0)
.statedAirVelocityExhaust(2.0)
.staticPressureLossSupply(2.0)
.staticPressureLossExhaust(2.0)
.pMSupply(2.0)
.pMExhaust(2.0)
.pMAnfSupply(2.0)
.pMAnfExhaust(2.0)
.pressureLossWrgSupply(2.0)
.pressureLossWrgExhaust(2.0)
.pressureLossMediumSupply(2.0)
.pressureLossMediumExhaust(2.0)
.enginePowerRotor(0.0)
.dryThermalPerformance(0.0)
.ofHeatRecovery(2.0)
.wrgType(WrgType.PLATTENTAUSCHER)
.earlyPressureLossFilterSupply(2.0)
.earlyPressureLossFilterExhaust(2.0)
.dimensioningPressureLossFilterSupply(2.0)
.dimensioningPressureLossFilterExchaust(2.0)
.referenceConfigurationFilterSupply(false)
.referenceConfigurationFilterExhaust(false)
.additionalFilterStageSupply(false)
.additionalFilterStageExhaust(false)
.hepaFilterSupply(false)
.hepaFilterExhaust(false)
.gasFilterSupply(false)
.gasFilterExhaust(false)
.highPerformanceCondenserSupply(false)
.highPerformanceCondenserExhaust(false)
.heightInnerDimensionSupply(2.0)
.heightInnerDimensionExhaust(2.0)
.depthInnerDimensionSupply(2.0)
.depthInnerDimensionExhaust(2.0);

calculationMapperImpl = new CalculationMapperImpl();
calculationDTO = calculationMapperImpl.calculationToCalculationDTO(calculation);

calculationResult = new CalculationResult();
calculationResult.setRealAreaSA(0.00);
calculationResult.setRealAreaEA(0.00);
calculationResult.setRealAirVelocitySA(138.89);
calculationResult.setRealAirVelocityEA(138.89);
calculationResult.setCheckedVClassSA("V9");
calculationResult.setCheckedVClassEA("V9");
calculationResult.setDeclaredVClassSA("V4");
calculationResult.setDeclaredVClassEA("V4");

calculationResult.setpMRefSA(0.00);
calculationResult.setpMRefEA(0.00);
calculationResult.setpMMaxSA(0.00);
calculationResult.setpMMaxEA(0.00);
calculationResult.setpClassSA("-");
calculationResult.setpClassEA("-");

calculationResult.setPressureLossWrg(4);
calculationResult.setPressureLossMedium(0);
calculationResult.setRatedAirVolume(2);
calculationResult.setDryThermalPower(0.00);
calculationResult.setAuxiliaryPower(0.00);
calculationResult.setElectricalPowerInput(0.00);
calculationResult.setPerformanceReferenceNumber(72.29);
calculationResult.setEfficiency(1.97);
calculationResult.sethClass("H6");

calculationResult.setpSfpVSA(3600000.00);
calculationResult.setpSfpVEA(3600000.00);
calculationResult.setExtraPSfpSA(0);
calculationResult.setExtraPSfpEA(0);
calculationResult.setSfpVClassSA("SFP7");
calculationResult.setSfpVClassEA("SFP7");

calculationResult.setSystemEfficiencySA(0.00);
calculationResult.setSystemEfficiencyEA(0.00);

calculationResult.setInternalPressureLossSA(2);
calculationResult.setInternalPressureLossEA(2);
calculationResult.setInternalPressureLossTotal(4);
calculationResult.setSfpIntSA(3600000);
calculationResult.setSfpIntEA(3600000);
calculationResult.setSfpIntTotal(7200000);

calculationResult.seteBonus2016(0);
calculationResult.seteBonus2018(0);
calculationResult.setfCorrection2016(360);
calculationResult.setfCorrection2018(340);
calculationResult.setSfpMax2016(840);
calculationResult.setSfpMax2018(760);
calculationResult.setAchieved2016(false);
calculationResult.setAchieved2018(false);



pdfGenerator = new PDFGenerator(calculationDTO, calculationResult, langval, messageSource, name);
}

@Test
public void compareFilesTest() throws IOException
{
System.out.println(calculation);

File f1 = new File("../PDFData/testPDF.pdf");
File f2 = new File("../PDFData/testPDF2.pdf");

boolean areSame = FileUtils.contentEquals(f1, f2);
System.out.println("Files were compared...");
assertTrue(areSame);

}


}

PDFGenerator 创建并保存 testPDF2.pdf 文件。

更新添加:

@PropertySource("classpath:/src/main/resources/i18n/messages_de.properties")

对配置没有做太多。我还从

更改了语言环境
String locale = "de"

Locale locale = Locale.GERMAN;

然后我加入了行:

System.out.println(messageSource.getMessage("pdf.klasse", null, this.locale));

直接在测试的开始。我犯了同样的错误。看来问题不在于找到文件,而在于阅读文件。

最佳答案

在你的配置中你需要:

@Bean
public ResourceBundleMessageSource messageSource() {
ResourceBundleMessageSource source = new ResourceBundleMessageSource();
source.setBasenames("i18n/messages");
return source;
}

我的测试是

@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class Test1 {

@Autowired
private MessageSource messageSource;

@Test
public void test1() {
assertNotNull(messageSource);
assertEquals("test greg de", messageSource.getMessage("pdf.klasse", null, Locale.GERMANY));
}
}

关于java - 测试期间未正确读取 MessageSource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41674065/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com