成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Spring、Spring Boot和TestNG測(cè)試指南 - 使用Spring Testing工具

Maxiye / 433人閱讀

摘要:源代碼見需要注意的是,如果是專供某個(gè)測(cè)試類使用的話,把它放到外部并不是一個(gè)好主意,因?yàn)樗锌赡軙?huì)被掃描到,從而產(chǎn)生一些奇怪的問題。

Github地址

既然我們現(xiàn)在開發(fā)的是一個(gè)Spring項(xiàng)目,那么肯定會(huì)用到Spring Framework的各種特性,這些特性實(shí)在是太好用了,它能夠大大提高我們的開發(fā)效率。那么自然而然,你會(huì)想在測(cè)試代碼里也能夠利用Spring Framework提供的特性,來提高測(cè)試代碼的開發(fā)效率。這部分我們會(huì)講如何使用Spring提供的測(cè)試工具來做測(cè)試。

例子1

源代碼見FooServiceImplTest:

@ContextConfiguration(classes = FooServiceImpl.class)
public class FooServiceImplTest extends AbstractTestNGSpringContextTests {

  @Autowired
  private FooService foo;

  @Test
  public void testPlusCount() throws Exception {
    assertEquals(foo.getCount(), 0);

    foo.plusCount();
    assertEquals(foo.getCount(), 1);
  }

}

在上面的源代碼里我們要注意三點(diǎn):

測(cè)試類繼承了AbstractTestNGSpringContextTests,如果不這么做測(cè)試類是無法啟動(dòng)Spring容器的

使用了@ContextConfiguration來加載被測(cè)試的Bean:FooServiceImpl

FooServiceImpl@Component

以上三點(diǎn)缺一不可。

例子2

在這個(gè)例子里,我們將@Configuration作為nested static class放在測(cè)試類里,根據(jù)@ContextConfiguration的文檔,它會(huì)在默認(rèn)情況下查找測(cè)試類的nested static @Configuration class,用它來導(dǎo)入Bean。

源代碼見FooServiceImplTest:

@ContextConfiguration
public class FooServiceImplTest extends AbstractTestNGSpringContextTests {

  @Autowired
  private FooService foo;

  @Test
  public void testPlusCount() throws Exception {
    assertEquals(foo.getCount(), 0);

    foo.plusCount();
    assertEquals(foo.getCount(), 1);
  }

  @Configuration
  @Import(FooServiceImpl.class)
  static class Config {
  }

}
例子3

在這個(gè)例子里,我們將@Configuration放到外部,并讓@ContextConfiguration去加載。

源代碼見Config:

@Configuration
@Import(FooServiceImpl.class)
public class Config {
}

FooServiceImplTest:

@ContextConfiguration(classes = Config.class)
public class FooServiceImplTest extends AbstractTestNGSpringContextTests {

  @Autowired
  private FooService foo;

  @Test
  public void testPlusCount() throws Exception {
    assertEquals(foo.getCount(), 0);

    foo.plusCount();
    assertEquals(foo.getCount(), 1);
  }

}

需要注意的是,如果@Configuration是專供某個(gè)測(cè)試類使用的話,把它放到外部并不是一個(gè)好主意,因?yàn)樗锌赡軙?huì)被@ComponentScan掃描到,從而產(chǎn)生一些奇怪的問題。

參考文檔

Spring Framework Testing

Context configuration with annotated classes

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/67427.html

相關(guān)文章

  • Spring、Spring BootTestNG測(cè)試指南 - 使用Spring Boot Test

    摘要:地址前面一個(gè)部分講解了如何使用工具來測(cè)試項(xiàng)目,現(xiàn)在我們講解如何使用工具來測(cè)試項(xiàng)目。所以我們可以利用這個(gè)特性來進(jìn)一步簡(jiǎn)化測(cè)試代碼。因?yàn)橹挥羞@樣才能夠在測(cè)試環(huán)境下發(fā)現(xiàn)生產(chǎn)環(huán)境的問題,也避免出現(xiàn)一些因?yàn)榕渲貌煌瑢?dǎo)致的奇怪問題。 Github地址 前面一個(gè)部分講解了如何使用Spring Testing工具來測(cè)試Spring項(xiàng)目,現(xiàn)在我們講解如何使用Spring Boot Testing工具來測(cè)...

    Anshiii 評(píng)論0 收藏0
  • SpringSpring BootTestNG測(cè)試指南 - @TestPropertySourc

    摘要:地址可以用來覆蓋掉來自于系統(tǒng)環(huán)境變量系統(tǒng)屬性的屬性。同時(shí)優(yōu)先級(jí)高于。利用它我們可以很方便的在測(cè)試代碼里微調(diào)模擬配置比如修改操作系統(tǒng)目錄分隔符數(shù)據(jù)源等。源代碼例子使用工具也可以和一起使用。源代碼見參考文檔 Github地址 @TestPropertySource可以用來覆蓋掉來自于系統(tǒng)環(huán)境變量、Java系統(tǒng)屬性、@PropertySource的屬性。 同時(shí)@TestPropertySou...

    paney129 評(píng)論0 收藏0
  • Spring、Spring BootTestNG測(cè)試指南 - 測(cè)試AOP

    摘要:首先先來看我們事先定義的以及。可以看到會(huì)修改方法的返回值,使其返回。例子測(cè)試的行為最簡(jiǎn)單的測(cè)試方法就是直接調(diào)用,看看它是否使用返回。先看這段代碼這些是利用提供的和來判斷是否被代理了的實(shí)現(xiàn)是通過動(dòng)態(tài)代理來做的。 Github地址 Spring提供了一套AOP工具,但是當(dāng)你把各種Aspect寫完之后,如何確定這些Aspect都正確的應(yīng)用到目標(biāo)Bean上了呢?本章將舉例說明如何對(duì)Spring...

    changfeng1050 評(píng)論0 收藏0
  • Spring、Spring BootTestNG測(cè)試指南 - @OverrideAutoConfi

    摘要:因?yàn)橹挥羞@樣才能夠在測(cè)試環(huán)境下發(fā)現(xiàn)生產(chǎn)環(huán)境的問題,也避免出現(xiàn)一些因?yàn)榕渲貌煌瑢?dǎo)致的奇怪問題。而方法則能夠不改變?cè)信渲貌惶峁┬碌呐渲玫那闆r下,就能夠關(guān)閉。 Github地址 在Chapter 1: 基本用法 - 使用Spring Boot Testing工具里提到: 除了單元測(cè)試(不需要初始化ApplicationContext的測(cè)試)外,盡量將測(cè)試配置和生產(chǎn)配置保持一致。比如如果生產(chǎn)...

    elisa.yang 評(píng)論0 收藏0
  • Spring、Spring BootTestNG測(cè)試指南 - 測(cè)試關(guān)系型數(shù)據(jù)庫

    摘要:地址提供了對(duì)的支持,能夠讓我們很方便對(duì)關(guān)系型數(shù)據(jù)庫做集成測(cè)試。如果想要在打包的時(shí)候跳過集成測(cè)試,只需要。例子使用因?yàn)槭褂昧藖碜黾蓽y(cè)試,得益于其機(jī)制,不需要自己構(gòu)建和的。 Github地址 Spring Test Framework提供了對(duì)JDBC的支持,能夠讓我們很方便對(duì)關(guān)系型數(shù)據(jù)庫做集成測(cè)試。 同時(shí)Spring Boot提供了和Flyway的集成支持,能夠方便的管理開發(fā)過程中產(chǎn)生...

    Meils 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<