小编Nal*_*ali的帖子

在 SAPUI5 中为货币使用格式化程序

我想构建自己的格式化程序来显示不同货币的金额。

有人可能猜到我使用了这个我已经知道的解决方案:

                                               <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 参考,因为它们是这样说的:

  • formatValue(vValue, sInternalType): 任何
  • 将包含金额和货币代码的给定数组格式化为字符串类型的输出值。Currency 类型不支持除 'string' 之外的其他内部类型。如果已为此类型定义了源格式,则 formatValue 也接受字符串值作为输入,该值将使用源格式解析为数组。如果 aValues 未定义或为 null,则返回 null。
  • 参数:
  • {array|string} vValue …

javascript formatter sapui5

0
推荐指数
1
解决办法
1万
查看次数

Mockito When() 不起作用

因此,我对代码进行了一些分解,使其更通用,也更容易让其他人理解类似的问题

这是我的主要代码:

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()代码不起作用,因此我的代码无法进一步进行......我想我的模拟由于某种原因无法正常工作。

java unit-testing mocking mockito

0
推荐指数
1
解决办法
1万
查看次数

标签 统计

formatter ×1

java ×1

javascript ×1

mocking ×1

mockito ×1

sapui5 ×1

unit-testing ×1