我想构建自己的格式化程序来显示不同货币的金额。
有人可能猜到我使用了这个我已经知道的解决方案:
<t:template>
<Text text="{
parts: [
{path: 'amount'},
{path: 'currency'}
],
type:'sap.ui.model.type.Currency',
formatOptions: {
currencyCode: false
}
}"
</t:template>
Run Code Online (Sandbox Code Playgroud)
这个解决方案的问题是我已经在一个单独的列中显示了货币,如果我使用这个解决方案,它看起来很丑......
所以我尝试了这个:
<t:template>
<Text text="{parts: [
{path: 'amount'},
{path: 'currency'}
],
formatter : '.formatter.currency'}"
/>
</t:template>
Run Code Online (Sandbox Code Playgroud)
我的格式化程序功能如下所示:
currency: function(amount, currency) {
var change = [];
change.push(amount);
change.push(currency);
var sInternalType = "";
var amount1 = new sap.ui.model.type.Currency();
amount1.formatValue(change, sInternalType);
return amount1;
}
Run Code Online (Sandbox Code Playgroud)
在这里,我想我做错了什么,因为英语不是我的第一语言,我可能会认为我没有正确理解 API 参考,因为它们是这样说的:
因此,我对代码进行了一些分解,使其更通用,也更容易让其他人理解类似的问题
这是我的主要代码:
protected void methodA(String name) {
Invocation.Builder requestBuilder = webTarget.request();
requestBuilder.header(HttpHeaders.AUTHORIZATION, authent.getPassword());
response = request.invoke();
if (response.equals("unsuccessfull")) {
log.warn("warning blabla: {} ({})");
} else {
log.info("info blabla {}");
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
而我的测试代码如下所示:
@Test
public void testMethodA() throws Exception {
final String name = "testName";
this.subject.methodA(name);
Authent authent = Mockito.mock(Authent.class);
when(authent.getPassword()).thenReturn("testPW");
assertEquals(1, logger.infos.size());
}
Run Code Online (Sandbox Code Playgroud)
正如我所说,代码更复杂,我将其分解并使其更短......希望它仍然可读。
我的问题不是我的when().thenReturn()
代码不起作用,因此我的代码无法进一步进行......我想我的模拟由于某种原因无法正常工作。