澳门新葡萄京娱乐场 2

澳门新葡萄京娱乐场每个 Java 开发者应该知道(并爱上)的 8 个工具

本文由码农网 –
孙腾浩原创翻译,转发请看清文末的转发必要,招待参加大家的付费投稿陈设澳门新葡萄京娱乐场,!

在Stormpath(一款客商管理和注解服务State of Qatar,大家认真对照品质和效能。任何贰个优质的才干人,仅仅具有天禀是相当不够的,你在专门的学业中还亟需科学的工具。工程学不仅是不得不承认,更是艺术。所以,在Stormpath,即使大家具有天分,大家仍持续追寻所需的实惠的工具。大家的工程师一向渴望向公司其余人分享新工具。以往,让大家向装有充满原始的Java开辟者推荐工具。

在Stormpath(一款客商管理和验证服务卡塔尔(قطر‎,大家认真对照品质和频率。任何二个手不释卷的手工者,仅仅具备天禀是非常不足的,你在职业中还亟需准确的工具。工程学不仅是无可置疑,更是艺术。所以,在Stormpath,就算大家具有天资,我们仍声犹在耳查究所需的有效性的工具。我们的攻城狮一贯渴望向协会别的人分享新工具。现在,让大家向具有充满原始的Java开垦者推荐工具。

在这里篇文章中,小编将分享大家Java团队普通专门的学业采纳的工具,并介绍如何利用它们,分享部分实用的小手艺。

在这里篇小说中,小编将分享大家Java共青团和少先队平日职业选拔的工具,并介绍如何行使它们,分享部分实用的小手艺。

澳门新葡萄京娱乐场 1

澳门新葡萄京娱乐场 2

1.Groovy

咱俩应用Groovy来写Java测验。为啥?因为它提供了上面那几个技术:

宽大的Java语法:那是Java语法,但稍事其余准则,譬如分号,变量类型,访谈修饰符都以可选的。前者对于测量检验意义重大,由于访问修饰符不是严厉的,你的测验能够读取并断言类内部的意况。比如,我们要是上面三个类:

public class Foo {
    private String bar = null;

    public void setBar(String bar) {
        this.bar = bar;
    }
}

假若您想测量检验setBar(String卡塔尔方法平常(即能正确改革bar的值State of Qatar,你能够用Groovy方便的读取变量值。Java中不准那样的操作(在不涉及Java反射机制前提下卡塔尔国。

@Test public void test() {
    def foo = new Foo()
    foo.setBar("hello")
    Assert.isTrue(foo.bar.equals("hello"))
    //groovy 允许我们访问私有变量 bar
}

无敌的预见:Groovy提供刚劲种种的assert,被称作power assertion
statement。Groovy的强硬断言能够清楚的体现验证失利时的结果。别的,它比Java更有可读性。

Assert.isTrue(foo.bar.equals("hello"));

可以用Groovy这样写:

assert foo.bar == "hello"

当断言退步时它交易会示一个十一分清晰的陈述:

assert foo.bar == "goodbye"
       |   |   |
       |   |   false
       |   hello
       Foo@12f41634

Mocking:使用Java时,动态模拟框架(如:EasyMock,PowerMock和Mockito卡塔尔超火,那么些框架能够在Groovy下有益的行使。耶!

1.Groovy

2.支持REST风格

我们的后端提供REST
API劳动来创设和保管账户,众多SDK中,大家的Java
SDK提供一定语言客商端模型做轻松人机联作。个中一部分SDK也提供网页来和后端人机联作,进而不用编写代码。

为了确认保障互连网框架的互操作性,它们必得表现的相通。因而大家要求创制一多种基于HTTP的测验。那是我们的宽容性测验工具。那一个种类由大家的SDK程序员维护,他们驾驭不仅仅一种语言。由此我们须求跨语言测量检验工具,快心遂意Rest-assured来了。

Rest-assured是Java领域特定语言(DSL domain-specific
language卡塔尔(قطر‎用来测验REST服务,它大约易用易上手,以致对于没有用过Java的开垦者也是存疑的兵不血刃。它提供先进的特色,比方细节配置、过滤器、定制剖判、跨站央浼伪造(CSCR-VF卡塔尔国和OAuth
2.0。它提供特别简单的语法:given-when-then。

举个例证:让我们来看它怎么校验“向/login路线发送post认证消息央浼再次回到302状态码”:

given() .accept(ContentType.HTML) .formParam("login", account.username) 
.formParam("password", account.password) .when() .post(LoginRoute) .then() .statusCode(302)

您能够在大家的TCK
repo中看看更加多Rest-assured测量试验

我们利用Groovy来写Java测量检验。为何?因为它提供了上边那几个力量:

3.Cargo Plugin

为了让我们的Java
SDK依据TCK校验,大家供给开启我们内部二个Web服务,以便测量试验在上边实践。讲道理来讲,我们须求每一趟构建时自动测验,Gargo
Plugin纵使为此而生。

Cargo用规范的法子大致包装种种应用容器。大家接受Cargo能够毫不费事的在区别的Servlet容器(例如Jetty和Tomcat卡塔尔中运作大家的代码。大家只须求在大家的pom文件中布置Cargo
Maven2
Plugin来运转多个Servlet容器(汤姆cat7卡塔尔国,在测量试验阶段编写翻译近日的War包,你能够在大家的Servlet插件例子中看看配置。

宽松的Java语法:那是Java语法,但有一点点其余法则,比方分号,变量类型,访谈修饰符都以可选的。前者对于测量检验意义首要,由于访谈修饰符不是从严的,你的测试能够读取并断言类内部的景观。譬喻,大家假如上边三个类:

4.Git

咱们能钻探怎么着关于Git你不了然的事务啊?想要深刻摸底Git,你能够看他们的About页。

小编们的Java
SDK团队遍及满世界,而且互相之间大约平昔不坐在一同。Git保障了我们写的每一行代码,这里有部分相当的屌的授命,节省了大家大批量的光阴:

  • git mv –force foo.java
    Foo.java:在大大小小写敏感的文件系统中退换文件名是特别艰难的,那一个命令能让git意识到foo.java重命名叫Foo.java
  • git diff-tree –no-commit-id –name-only -r
    <commit_ID>:查看全数在<commit_ID>这一次提交中改动的文本。
  • git diff –name-only SHA1
    SHA2:列举出在SHA1和SHA2两遍提交之间有着改换的文本。
  • 在三个文本的野史提交记录中查询有些字符串:创设search.sh文件,粘贴上面代码:

git rev-list --all $2 | (
    while read revision; do
        git grep -F $1 $revision $2
    done
)

命令能够经过这种方式推行:sh ./search.sh string_to_search
file_where_to_search

public class Foo {     private String bar = null;     public void setBar(String bar) {             this.bar = bar;     } }  

5.GitHub

GitHub不单为大家的Git项目提供托管服务,它为代码开源并让天下都看见做出了光辉进献。那激发了人人去品味、去沟通、去演练,一点都不小程度提升了各种人的品种质量和我们的技艺水平。

GitHub允许大家跟进我们的issue.旅客能够付出新供给和报告bug。他们也能够收起大家项目展开的通报。

若是你想测量试验setBar(String卡塔尔方法不奇怪(即能科学修正bar的值State of Qatar,你能够用Groovy方便的读取变量值。Java中不容许那样的操作(在不关乎Java反射机制前提下卡塔尔。

6.Maven

Maven业已够用著名了。所以本人不会用长篇幅解释为什么大家采用Maven做营造管理。可是作者能够大饱眼福几个工夫,让您的Maven更一箭穿心:

管理依赖:在二个多模块的体系中,你必要在根pom.xml的<dependencyManagement>标签中定义每叁个依赖。一旦您那样做,全体下层模块都得以无需钦赐版本。这种管理正视的法门(比如版本晋级卡塔尔(قطر‎能够集中处理,全部下层模块都会自动识别。比方在根pom.xml:

<dependencyManagement>
  <dependencies>
    <dependency>
        <groupId>io.jsonwebtoken</groupId>
        <artifactId>jjwt</artifactId>
        <version>${jjwt.version}</version>
     </dependency>
     ...
  <dependencies>
<dependencyManagement>

下层模块的pom.xml:

<dependencies>
  <dependency>
      <groupId>io.jsonwebtoken</groupId>
      <artifactId>jjwt</artifactId>  <!-- 注意这里没有指定版本 -->
  </dependency>
  ...
<dependencies>

掣肘下层模块编写翻译:在文告的时候我们必要具有下层模块一同发布,可是大家怎么着防止有些模块(比方example卡塔尔(قطر‎公布呢?很粗大略,只要求把下部的pom文件出席到你不想昭示的模块:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>2.7</version>
    <configuration>
        <skip>true</skip>  <!-- (敲黑板)这是重点 -->
    </configuration>
</plugin>

跳过集成测量试验:大家有大多合龙测量试验必要非常短日子编写翻译。那么些测验确定保障了后端全部运维平常.在数次的地点安插时期,大家一再因为新效率或修复bug而更改代码。并无需每一趟在地面营造的时候实践这么些测量检验,那会拖慢开荒进度。因而大家要确定保障大家的Java
SDK只在大家的CI服务器上运营的时候推行集成测验。能够通过上边方法:

根pom.xml文件:

<properties>
    <skipITs>true</skipITs>
</properties>
...
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <skipITs>${skipITs}</skipITs>
                <includes>
                    <include>**/*IT.*</include>
                </includes>
            </configuration>
            <executions>
               <execution>
                   <goals>
                       <goal>integration-test</goal>
                       <goal>verify</goal>
                   </goals>
               </execution>
            </executions>
        </plugin>
  </plugins>
<build>

故而您可以想像到,全部集成测验文件以IT结尾,来承保配置平常运维,譬如:ApplicationIT.groovy
或 I18nIT.groovy

下一场,要是大家想让集成测验运维,大家奉行以下营造:mvn clean install
-DskipITs=false

@Test public void test() {     def foo = new Foo()     foo.setBar("hello")     Assert.isTrue(foo.bar.equals("hello"))    //groovy 允许我们访问私有变量 bar}  

7.JWT Inspector

大家的Java SDK使用JWT(JSON Web
Token卡塔尔(قطر‎通过安全可信赖的主意传输数据。当大家测量试验每种考察时,大家必要分析从浏览器选用到的JWT内容。token音信恐怕在USportageL,cookie或地面累积中。JWT
Inspector是一款浏览器插件,让大家得以从调整台或内置的分界面解码JSON
Web
Token。你无需在你的app中追踪token音讯。你只需求按一下插件的按键,JWT
Inspector会自动展现你所急需的保有音信,然后您能够复制当中任何token新闻。

强盛的预感:Groovy提供强有力两种的assert,被称作power assertion
statement。Groovy的有力断言能够清晰的突显验证失败时的结果。其余,它比Java更有可读性。

8.Postman

我们重度注重REST
API须求,编写REST乞请并不方便人民群众,具体语法决计于大家所用的工具,举个例子curl或HTTPie。两个都易读,但语法难记。平常,大家必要每个调查难点时,大家需求测量试验一些诉求。当出标题时,我们无计可施剖断原因是伸手依旧后端。大家浪费了汪洋时日来困惑大家写的乞求是还是不是正确。

Postman让书写REST
API须要变得轻巧。它也提供不知凡几功用,比如保留、复用央求、生成代码(java,python,curl等等卡塔尔国,还足以批量按序实施必要。Postman通过友好的分界面扶助你创设复杂的下令,你所急需做的就是填充一个表单,俨然不能够再棒了。

Assert.isTrue(foo.bar.equals("hello")); 

总结

应用科学的工具不仅扶持你节省时间进步效能,仍然是能够巩固你小说的质量并分享普通专业。大家要时刻注意,发掘并学习新的工具。一初始容许必要某个着力,但你总会发掘到付出的小运是值得的。

可以用Groovy这样写:

assert foo.bar == "hello" 

当断言失利时它会来得二个丰裕显著的描述:

assert foo.bar == "goodbye"        |   |   |        |   |   false        |   hello        Foo@12f41634  

Mocking:使用Java时,动态模拟框架(如:EasyMock,PowerMock和Mockito卡塔尔(قطر‎相当红,这个框架能够在Groovy下有益的应用。耶!

2.支持REST风格

我们的后端提供REST API服务来创设和管理账户,众多SDK中,大家的Java
SDK提供特定语言顾客端模型做轻便交互作用。在这之中有些SDK也提供网页来和后端人机联作,进而不用编写代码。

为了保证互联网框架的互操作性,它们必得表现的均等。因而大家要求创设一密密层层基于HTTP的测量检验。那是我们的包容性测量试验工具。这些类型由大家的SDK技术员维护,他们明白不仅仅一种语言。由此大家须求跨语言测量试验工具,快心满志Rest-assured来了。

Rest-assured是Java领域特定语言(DSL domain-specific
language卡塔尔用来测量检验REST服务,它回顾易用易上手,以致对于还没用过Java的开垦者也是嫌疑的强盛。它提供先进的特点,举例细节配置、过滤器、定制深入分析、跨站要求虚构(CS劲客F卡塔尔(قطر‎和OAuth
2.0。它提供特别轻巧的语法:given-when-then。

举个例证:让大家来看它什么校验“向/login路线发送post认证信息央浼再次来到302状态码”:

given() .accept(ContentType.HTML) .formParam("login", account.username)  .formParam("password", account.password) .when() .post(LoginRoute) .then() .statusCode(302)  

您能够在我们的TCK repo中观望越多Rest-assured测验

3.Cargo Plugin

为了让大家的Java
SDK根据TCK校验,大家要求开启我们中间贰个Web服务,以便测验在下边实行。讲道理来讲,大家须求每回创设时自动测量试验,Gargo
Plugin正是为此而生。

Cargo用标准的主意简单包装各样应用容器。我们利用Cargo能够举手之劳的在不一致的Servlet容器(比如Jetty和Tomcat卡塔尔(قطر‎中运转大家的代码。大家只须求在我们的pom文件中布置Cargo
Maven2
Plugin来运行叁个Servlet容器(汤姆cat7State of Qatar,在测量检验阶段编写翻译这几天的War包,你可以在我们的Servlet插件例子中来看配置。

4.Git

我们能斟酌怎样关于Git你不领会的事务啊?想要深入摸底Git,你能够看他们的About页。

咱俩的Java
SDK团队遍及整个世界,况且互相之间大概一直不坐在一同。Git保障了我们写的每一行代码,这里有一部分要命棒的授命,节省了大家大批量的日子:

  • git mv –force foo.java
    Foo.java:在大大小小写敏感的文件系统中改造文件名是极其费劲的,那一个命令能让git认识到foo.java重命名叫Foo.java
  • git diff-tree –no-commit-id –name-only -r
    <commit_ID>:查看全体在<commit_ID>本次提交中退换的文本。
  • git diff –name-only SHA1
    SHA2:列举出在SHA1和SHA2五次提交之间有着改动的文本。
  • 在三个文本的野史提交记录中查询有些字符串:创立search.sh文件,粘贴上面代码:

git rev-list --all $2 | (     while read revision; do         git grep -F $1 $revision $2     done )  

命令能够经过这种措施施行:sh ./search.sh string_to_search
file_where_to_search

5.GitHub

GitHub不仅为我们的Git项目提供托管服务,它为代码开源并让环球都看出做出了了不起进献。那激发了人人去品味、去交换、去演习,不小程度升高了各种人的品种品质和大家的技能水平。

GitHub允许大家跟进大家的issue.游客能够提交新须要和报告bug。他们也能够吸收大家项目进展的文告。

6.Maven

Maven已经足足闻名了。所以自个儿不会用长篇幅解释为啥大家应用Maven做创设管理。不过小编得以大吃大喝多少个工夫,让你的Maven更贯虱穿杨:

管住信任:在贰个多模块的种类中,你需求在根pom.xml的<dependencyManagement>标签中定义每二个凭借。一旦你如此做,全数下层模块都足以无需钦定版本。这种管理信赖的主意(比方版本晋级State of Qatar能够聚焦管理,全体下层模块都会自动识别。譬如在根pom.xml:

<dependencyManagement>   <dependencies>     <dependency>         <groupId>io.jsonwebtoken</groupId>         <artifactId>jjwt</artifactId>         <version>${jjwt.version}</version>      </dependency>      ...  <dependencies><dependencyManagement>  

下层模块的pom.xml:

<dependencies>   <dependency>       <groupId>io.jsonwebtoken</groupId>       <artifactId>jjwt</artifactId>  <!-- 注意这里没有指定版本 -->   </dependency>   ...<dependencies>  

阻拦下层模块编写翻译:在宣布的时候大家需求持有下层模块一同公布,不过大家什么样防止某些模块(比方example卡塔尔国公布呢?相当的轻便,只必要把下部的pom文件参预到您不想昭示的模块:

<plugin>     <groupId>org.apache.maven.plugins</groupId>     <artifactId>maven-deploy-plugin</artifactId>     <version>2.7</version>     <configuration>         <skip>true</skip>  <!-- (敲黑板)这是重点 -->     </configuration></plugin>  

跳过集成测量检验:大家有过多合并测量检验供给不短日子编写翻译。那些测量检验确认保证了后端全部运转平常.在每每的地底计划时期,我们往往因为新职能或修复bug而更换代码。并不须要每一趟在本土营造的时候实践这么些测验,那会拖慢开垦进程。由此大家要保管大家的Java
SDK只在大家的CI服务器上运转的时候实行集成测量试验。能够透过下边方法:

根pom.xml文件:

<properties>     <skipITs>true</skipITs></properties>...<build>     <plugins>         <plugin>             <groupId>org.apache.maven.plugins</groupId>             <artifactId>maven-failsafe-plugin</artifactId>             <version>2.19.1</version>             <configuration>                 <skipITs>${skipITs}</skipITs>                 <includes>                     <include>**/*IT.*</include>                 </includes>             </configuration>             <executions>                <execution>                    <goals>                        <goal>integration-test</goal>                        <goal>verify</goal>                    </goals>                </execution>             </executions>         </plugin>   </plugins><build>  

故而您能够想象到,全数集成测量检验文件以IT结尾,来保管配置常常运作,比方:ApplicationIT.groovy
或 I18nIT.groovy

然后,若是我们想让集成测试运营,大家实行以下构建:mvn clean install
-DskipITs=false

7.JWT Inspector

大家的Java SDK使用JWT(JSON Web
Token卡塔尔(قطر‎通过安全可相信的措施传输数据。当大家测量试验排查时,大家供给剖判从浏览器选用到的JWT内容。token音信可能在U大切诺基L,cookie或地面储存中。JWT
Inspector是一款浏览器插件,让大家得以从调控台或内置的界面解码JSON Web
Token。你没有必要在你的app中追踪token新闻。你只必要按一下插件的按键,JWT
Inspector会自动突显你所必要的具备新闻,然后您能够复制此中任何token新闻。

8.Postman

我们重度信任REST
API央浼,编写REST诉求并不方便人民群众,具身体语言法决计于我们所用的工具,举个例子curl或HTTPie。两者都易读,但语法难记。经常,大家须要各个考察难题时,大家要求测验一些呼吁。当出难题时,咱们爱莫能助推断原因是伸手还是后端。大家浪费了多量时间来嫌疑大家写的伸手是还是不是准确。

Postman让书写REST
API诉求变得轻松。它也提供大多功力,譬喻保留、复用央浼、生成代码(java,python,curl等等卡塔尔国,还足以批量按序施行诉求。Postman通过协调的分界面帮忙您营造复杂的指令,你所急需做的正是填写叁个表单,大约不可能再棒了。

总结

利用正确的工具不唯有扶植你节省时间进步作用,还是能拉长你小说的身分并享受普通职业。大家要时刻注意,开掘并就学新的工具。一起头容许须要有的努力,但你总会开采到付出的岁月是值得的。

【编辑推荐】

发表评论

电子邮件地址不会被公开。 必填项已用*标注