单元测试:外汇市场
来在银行场景中练习创建和编程模拟对象吧!请为使用 European Central Bank 的 ExchangeApp 补全单元测试。由于您要测试的是 convertEuroTo() 的逻辑,不要对它做模拟。相反,应当模拟它的依赖,以便检查逻辑是否正常工作!
所需的 JUnit 和 Mockito 包已为您导入。
本练习是课程的一部分
Java 测试入门
练习说明
- 为
EuropeanCentralBankServer创建一个模拟对象。 - 使用正确的语法将该模拟对象编程为返回
12345.0。 - 验证货币转换是否返回期望的结果。
交互式实操练习
通过完成这段示例代码来试试这个练习。
class Main {
public static void main(String[] args) {
launchMockitoTestsAndPrint(ExchangeAppTest.class);
}
}
class ExchangeAppTest {
@Test
void convertEuroTo_convertsTST() {
// Create a mock object for the EuropeanCentralBankServer
EuropeanCentralBankServer bank = ____(EuropeanCentralBankServer.class);
ExchangeApp exchangeApp = new ExchangeApp(bank);
double euroAmount = 100;
// Stub the mock to return a value for given input
____(exchangeApp.convertEuroTo("TST", 100)).____(12345.0);
double tstAmount = exchangeApp.convertEuroTo("TST", euroAmount);
System.out.println("Converted " + euroAmount + " EUR to " + tstAmount + " TST.");
// Assert on the exact expected value of tstAmount
____(1234500, ____);
}
}