歡迎來到雙子樹教育網(wǎng)!
機(jī)構(gòu)檔案

快速報(bào)名,會(huì)有咨詢師與您聯(lián)系

學(xué)校評(píng)價(jià)(我要提問/點(diǎn)評(píng))

  • 學(xué)校被點(diǎn)評(píng):0
  • 好評(píng)(0%)
  • 中評(píng)(0%)
  • 差評(píng)(0%)

資料認(rèn)證

    未通過身份證認(rèn)證 未通過身份證認(rèn)證

    未通過辦學(xué)許可認(rèn)證 未通過辦學(xué)許可認(rèn)證

  • 學(xué)校瀏覽人次:
  • 加盟時(shí)間:2021年04月16日
動(dòng)態(tài)

月薪三萬Java開發(fā)工程師的測試技巧

發(fā)布者:武漢達(dá)內(nèi)教育 發(fā)布時(shí)間:2021-07-31 來源:武漢達(dá)內(nèi)教育

如何編寫測試、有哪些用于管理測試集合的最佳實(shí)踐這些主題并不新鮮。從 “在構(gòu)建過程中使用集成測試的正確方式” 到談?wù)摗霸趩卧獪y試中恰當(dāng)?shù)啬M環(huán)境”, 再到“ 代碼覆蓋率以及如何找到哪些是你真正需要測試的代碼”。

但是,今天我們想和你談?wù)撘幌盗行〗ㄗh,這些建議可以幫助你在頭腦中理清測試自下而上是如何運(yùn)作的。從如何構(gòu)造一個(gè)簡單的單元測試到對(duì) mock(模擬) 和 spy(監(jiān)視) 以及復(fù)制粘貼測試代碼更高層次的理解。

武漢達(dá)內(nèi)java培訓(xùn)AAArrr,像海盜一樣說話?模式

和大部分軟件開發(fā)一樣,模式通常都是一個(gè)不錯(cuò)的開始。無論是想要通過工廠來創(chuàng)建對(duì)象,或者希望將web應(yīng)用程序中的關(guān)注點(diǎn)分散到Model、View和Controller中,在它們背后通常都會(huì)有一個(gè)模式,幫助你理解正在發(fā)生什么并解決困難。 那么,一個(gè)典型的測試看上去應(yīng)該是怎么樣的?

當(dāng)我們編寫測試時(shí),其中一個(gè)最有用但卻極其簡單的模式是計(jì)劃-執(zhí)行-斷言(Arrange-Act-Assert),簡稱AAA。

這個(gè)模式的前提是所有測試都應(yīng)該遵循默認(rèn)布局。測試系統(tǒng)所必需的全部條件和輸入都應(yīng)該在測試方法開始的時(shí)候被設(shè)置(Arrange)。在計(jì)劃好所有前置條件后,我們通過觸發(fā)一個(gè)方法或者檢查系統(tǒng)的某些狀態(tài)的方式,在測試系統(tǒng)上運(yùn)行(Act)。最后,我們需要斷言(Assert)測試系統(tǒng)是否已經(jīng)生成了期望的結(jié)果。

讓我們來看一個(gè)Java JUnit測試的示例,它展示了這種模式: @Test public void testAddition() { // Arrange Calculator calculator = new Calculator(); // Act int result = calculator.add(1, 2); // Assert assertEquals("Calculator.add returns invalid result", 3, result); }

看看代碼流多么精準(zhǔn)!計(jì)劃-執(zhí)行-斷言模式可以讓你快速理解測試的功能。偏離了這個(gè)模式后會(huì)很容易寫出非常糟糕的代碼。

牢記迪米特法則規(guī)則

迪米特法則在軟件上面應(yīng)用了最小知識(shí)原則,減小了單元的耦合——這一直是在開發(fā)軟件的設(shè)計(jì)目標(biāo)。

迪米特法則可以表述為一系列的規(guī)則:

在方法中,一個(gè)類的實(shí)例可以調(diào)用該類的其它方法;在方法中,實(shí)例可以查詢自己的數(shù)據(jù),但不能查詢數(shù)據(jù)的數(shù)據(jù),即實(shí)例的數(shù)據(jù)比較復(fù)雜時(shí),不能進(jìn)行嵌套查詢;當(dāng)方法接收參數(shù)時(shí),可以調(diào)用參數(shù)的第一級(jí)方法;當(dāng)方法創(chuàng)建了一些局部變量的實(shí)例后,這個(gè)類的實(shí)例可以調(diào)用這些局部變量的方法;不要調(diào)用全局對(duì)象的方法。

那么,就測試而言,這些意味著什么呢?好吧,由于迪米特法則減少了應(yīng)用程序各部分之間的耦合,這意味著測試應(yīng)用程序中的各個(gè)部分變得更加容易。為了要查看該法則如何為測試提供幫助,我們來看一個(gè)定義非常糟糕的類,它違背了迪米特法則:

考慮下面這個(gè)我們要測試的類: public class Foo() { public Bar doSomething(Baz aParameter) { Bar bar = null; if (aParameter.getValue().isValid()) { aParameter.getThing().increment(); bar = BarManager.getBar(new Thing()); } return bar; } }

以上就是 武漢達(dá)內(nèi)教育 小編為您整理 月薪三萬Java開發(fā)工程師的測試技巧 的全部內(nèi)容,更多學(xué)習(xí)資訊,課程費(fèi)用,培訓(xùn)時(shí)間可咨詢在線老師!
校區(qū)地址
  • 乘車路線:電話咨詢
  • 授課地址:

地理位置 Location