久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Mockito 通過但代碼覆蓋率仍然很低

Mockito Passes but Code Coverage still low(Mockito 通過但代碼覆蓋率仍然很低)
本文介紹了Mockito 通過但代碼覆蓋率仍然很低的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

package com.fitaxis.test;

import java.sql.SQLException;

import org.junit.Assert;
import org.junit.Test;
import org.mockito.Mockito;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;

import static org.mockito.Mockito.*;

import com.fitaxis.leaderboard.LeaderBoard;

public class LeaderBoardTests {


 @Test 
 public void TestThatDataIsSavedToTheDatabase()
 {
  LeaderBoard leaderBoard = mock(LeaderBoard.class);
  //doNothing().doThrow(new RuntimeException()).when(leaderBoard).saveData();

  when(leaderBoard.saveData()).thenReturn(true);

  boolean res = leaderBoard.saveData();

  verify(leaderBoard).saveData();

  Assert.assertTrue(res);
 }

}

我已經使用 mockito 來模擬一個類,但是當我使用代碼覆蓋率時,它不會檢測到該方法已被調用.難道我做錯了什么?請幫忙!

I have used mockito to mock a class, but when I use code coverage it does not detect that the method as been called. Am I doing something wrong? Please help!

推薦答案

看起來你正在模擬你對生產代碼的唯一調用.

It looks like you're mocking out the only call you're making to production code.

換句話說,你的測試說:

In other words, your test says:

  • 當我調用 saveData() 時,偽造結果返回 true
  • 現在調用 saveData() - 是的,結果是真的!
  • When I call saveData(), fake the result to return true
  • Now call saveData() - yay, the result was true!

據我所知,您的生產代碼根本沒有被調用.

None of your production code is being calls at all, as far as I can see.

模擬的目的是從生產類中模擬出依賴項,或者(有時,盡管我不喜歡)模擬出您實際測試的代碼將調用的生產類的一些方法.

The point of mocking is to mock out dependencies from your production class, or (sometimes, though I prefer not to) to mock out some methods of your production class that the code you're actually testing will call.

您應該可能模擬出 Leaderboard 的依賴關系,而不是 Leaderboard 本身.如果你必須模擬出saveData(),你應該測試調用 saveData()的方法.. 檢查它們是否保存了正確的數據,當 saveData() 返回 false 時它們是否正確運行,等等.

You should probably be mocking out the dependencies of Leaderboard rather than Leaderboard itself. If you must mock out saveData(), you should be testing the methods that call saveData()... check that they save the right data, that they act correctly when saveData() returns false, etc.

這篇關于Mockito 通過但代碼覆蓋率仍然很低的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How to wrap text around components in a JTextPane?(如何在 JTextPane 中的組件周圍環繞文本?)
MyBatis, how to get the auto generated key of an insert? [MySql](MyBatis,如何獲取插入的自動生成密鑰?[MySql])
Inserting to Oracle Nested Table in Java(在 Java 中插入 Oracle 嵌套表)
Java: How to insert CLOB into oracle database(Java:如何將 CLOB 插入 oracle 數據庫)
Why does Spring-data-jdbc not save my Car object?(為什么 Spring-data-jdbc 不保存我的 Car 對象?)
Use threading to process file chunk by chunk(使用線程逐塊處理文件)
主站蜘蛛池模板: 91久久精品国产91久久性色tv | 波波电影院一区二区三区 | 精品欧美一区免费观看α√ | 一区二区三区视频在线 | 亚洲人人| 日韩中文字幕在线观看视频 | 日本a v在线播放 | 亚洲人成人一区二区在线观看 | 国产黄色在线观看 | 国产精品日日做人人爱 | 夜夜骑综合 | 成人免费区一区二区三区 | 国产一区二区三区久久久久久久久 | 婷婷丁香在线视频 | 在线只有精品 | xx性欧美肥妇精品久久久久久 | 中文字幕不卡在线观看 | 亚洲精品成人在线 | 国产大片一区 | 欧美日韩三区 | 国产成人精品一区二区三区在线 | 在线免费观看黄a | 久久视频免费观看 | 蜜桃视频在线观看免费视频网站www | 国产精品国产成人国产三级 | 欧产日产国产精品99 | 国产91精品网站 | 中文字幕亚洲视频 | 成人av一区 | 久操av在线 | 欧美一区二区免费 | 天天操夜夜操 | 日韩av在线一区 | 亚洲国产精品区 | 久久国产一区二区三区 | 成年人网站在线观看视频 | 亚洲国产黄色av | 伊人春色成人网 | 免费成人在线网站 | 国产精品久久久久久久久免费丝袜 | 一区二区中文字幕 |