如何使用Mockito测试这种公共方法

时间:2016-04-14 13:35:58

标签: java junit mockito

如何使用Mockito测试此公共静态方法?

public static Currency getByCurrencyCode(String pCurrencyCode) {
    if (CURRENCY_CODE_USD.equalsIgnoreCase(pCurrencyCode)) {
        return US_DOLLAR;
    }
    if (CURRENCY_CODE_HKD.equalsIgnoreCase(pCurrencyCode)) {
        return HK_DOLLAR;
    }
    if (CURRENCY_CODE_MYR.equalsIgnoreCase(pCurrencyCode)) {
        return MALAYSIAN_RINGGIT;
    }
    return null;
}

1 个答案:

答案 0 :(得分:1)

你想了解一下单元测试的模拟用法......因为你不需要任何类型的模拟来完全测试这些方法:

示例,一个简单的JUnit测试:

@Test
public void testGetCurrencyCodeForUSDollar() {
    assertThat(getByCurrencyCode("USD"), is(US_DOLLAR))

其中:

断言是唯一一个确实需要

的断言

是众多hamcrest matchers

中的一种

或者反过来说:当你正在考试的课程时,你只需要嘲笑"正积极使用"其他一些对象"为了完成它的工作。然后它可能是有用的,有时候强制你"替换" "那些其他对象"用你可以完全控制的东西。