我想列出在每個單元測驗的執行程序中觸及了哪些類。我想發現哪些測驗的范圍過大,應該使用更小的單元。通過 IntelliJ 或 JaCoCo 測量代碼覆寫率對我沒有幫助,因為我無法深入到單個測驗。有沒有人設法做類似的事情?我發現了一個十年前問過的
我們可以看到 BalanceCalculatorTest 的方法 testCalculateBalance 涵蓋了 BalanceCalculator、PriorServiceBalanceProvider 和 TimeAccount,但是我們沒有看到 TimeAccountProvider,因為它在測驗中被模擬了。我將粘貼代碼片段,以便您了解全貌。底線是,它有效,但它不是非常用戶友好。
public class BalanceCalculatorTest {
@Test
public void testCalculateBalance() {
TimeAccountProvider timeAccountProvider = Mockito.mock(TimeAccountProvider.class);
Mockito.doReturn(Collections.singleton(new TimeAccount())).when(timeAccountProvider).getTimeAccounts();
BalanceCalculator balanceCalculator = new BalanceCalculator(timeAccountProvider);
Assert.assertEquals(balanceCalculator.calculateBalance(), 2);
}
}
public class BalanceCalculator {
private final TimeAccountProvider timeAccountProvider;
public BalanceCalculator(TimeAccountProvider timeAccountProvider) {
this.timeAccountProvider = timeAccountProvider;
}
public int calculateBalance() {
Set<TimeAccount> timeAccounts = timeAccountProvider.getTimeAccounts();
int sum = 0;
for (TimeAccount timeAccount : timeAccounts) {
Set<TimeAccountDetail> bookings = timeAccount.getTimeAccountDetails();
sum = bookings.stream()
.mapToInt(TimeAccountDetail::getAmount)
.sum();
}
sum = new PriorServiceBalanceProvider().getPriorBalance();
return sum;
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/451569.html
上一篇:Excel2007,VBA:零售6.5.1057——Application.WorksheetFunction.Average()
