日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sql 注射_令人惊讶的注射

發布時間:2023/12/3 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sql 注射_令人惊讶的注射 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

sql 注射

所以,我欠吉姆道歉。 他編寫了一個有效的模擬和JUnit測試,我在回顧中告訴他,我認為它沒有達到他的預期。 當我錯了時,這種情況對我來說就像是一個錯誤 。 稱它為理想的意外副作用。

假設您有以下兩類:

public class Service { private String name; private Widget widget; public Service(String name, Widget widget) { this .name = name; this .widget = widget; } public void execute() { widget.handle(name); } } public interface Widget { void handle(String thing); }

那里沒什么令人興奮的…

現在,讓我們嘗試使用Mockito測試(此處為JUnit 5)測試服務:

@ExtendWith (MockitoExtension. class ) class ServiceTest { @Mock private Widget widget; @InjectMocks private Service service = new Service( "Joe" , widget); @Test void foo() { service.execute(); verify(widget).handle( "Joe" ); } }

測試通過。 但是應該嗎?

對我來說, @InjectMocks批注旨在作為一種工廠方法來創建依賴于模擬值的東西,在測試中使用@Mock表示。 這就是我通常使用的方式,并且我也希望生態系統中的所有對象都是使用構造函數注入構建的。

這是一個很好的設計原則,但不是工具功能的定義!

應用此批注的外觀與在注釋字段的過程@InjectMocks ,并采取不同的路徑,如果它的null比,如果它已經初始化。 對于null路徑是一種聲明式構造函數注入方法如此純粹,我完全不認為注入模擬可能意味著對現有對象執行此操作。 該文檔也不太清楚這一點。

  • 如果沒有對象,則@InjectMocks必須創建一個
    • 它使用可以提供的最大構造函數
  • 如果有一個對象,它將嘗試通過setters來填充模擬
  • 如果沒有設置器,它會嘗試通過直接設置字段來強制破解模擬,迫使它們一路被訪問

最重要的是, @InjectMocks靜默@InjectMocks失敗,因此您可能會在不知道的情況下進行神秘的測試失敗。

更重要的是,有些人在Mockito Runner頂部的測試中使用MockitoAnnotations.initMocks()調用,這會導致各種奇怪的事情!!! 認真的家伙,永遠不要打電話。

得到教訓

呃,對不起,吉姆!

@InjectMocks注釋確實會盡其所能執行最有用的操作,但是場景越復雜,預測就越困難。

在我看來,使用兩種橫切技術初始化對象是一種危險且難以理解的方法,但是,如果有記錄的話,它可能比其他方法更好。 添加評論!

也許需要某種@InjectWithFactory ,您可以在其中聲明一個接收所需@InjectWithFactory的方法,并在構造時使用@Mock對象調用該方法,以便您填充其余測試上下文中的任何其他參數。

或者,也許我們只是習慣了這項工作,而忘記了它是否易于理解。

最終思想

我通過創建測試并調試Mockito庫以找到其實現結果的方法,了解了Mockito在上面所做的工作。 我強烈建議您以這種方式瀏覽您最常用的庫。 您將學到一些有用的東西!

翻譯自: https://www.javacodegeeks.com/2019/11/a-surprising-injection.html

sql 注射

總結

以上是生活随笔為你收集整理的sql 注射_令人惊讶的注射的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。