久久久久久久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在线| 日韩av一区在线观看 | 精品国产一区二区三区久久 | 免费一级淫片aaa片毛片a级 | 91麻豆精品一区二区三区 | 97caoporn国产免费人人 | 久久只有精品 | 国产欧美一区二区三区日本久久久 | 亚洲一区二区三区视频 | 亚洲图片一区二区三区 | 免费看国产a | 亚洲免费观看 | 毛片一级片 | 亚洲视频在线观看一区二区三区 | 精品欧美激情在线观看 | 成人做爰9片免费看网站 | 日本成人在线观看网站 | 欧美亚洲综合久久 | 欧美乱大交xxxxx另类电影 | 欧美成人一区二免费视频软件 | www.男人天堂.com | 精品在线看 | 国产亚洲精品久久情网 | 亚洲综合色站 | 日韩精品一区二区三区在线播放 | 四虎永久免费黄色影片 | 人人爽人人爽人人片av | 亚洲精品久久久一区二区三区 | 国产精品嫩草影院精东 | 午夜视频免费在线观看 | 99色在线视频| 亚洲精品欧美 | 日韩欧美一级精品久久 | 99久久久国产精品免费消防器 | 欧美日韩高清一区 | 中文成人在线 | 亚洲精品视频三区 | 精品国产乱码久久久久久影片 | 91久久久久久久久久久久久 | 成人精品一区二区三区中文字幕 | 国产主播第一页 |