皮皮网
皮皮网

【源码主题推荐】【德讯源码】【青岛源码科技】testng源码包

来源:仿one兔源码 发表时间:2024-11-27 13:38:47

1.Java IDE集成开发工具: IntelliJ IDEA CE 2019
2.Apache Ant和Apache Maven的区别
3.单元测试实践
4.Java的常用开发工具?

testng源码包

Java IDE集成开发工具: IntelliJ IDEA CE 2019

       IntelliJ IDEA CE 是源码一款功能强大的 Java 集成开发环境。它将源代码编入索引后,源码提供即时、源码智能的源码代码完成,以及快速的源码代码分析,确保编码效率与代码质量。源码源码主题推荐IDE 强大的源码重构工具为开发者带来便捷的代码维护体验。

       IntelliJ IDEA CE 内置了丰富且统一的源码版本控制系统界面,支持 Git、源码SVN、源码Mercurial、源码CVS、源码Perforce 和 TFS 等主流版本控制系统,源码帮助开发者高效管理代码版本。源码

       构建工具方面,源码IDE 支持 Maven、Gradle、Ant、Gant、SBT、德讯源码NPM、Webpack、Grunt、Gulp 等多种构建工具。这些工具与 IDE 的无缝集成,使得自动编译、打包、运行测试、部署等操作变得更加简单高效。

       在测试方面,IntelliJ IDEA CE 提供了强大的单元测试支持,包括 JUnit、TestNG、Spock、Cucumber、ScalaTest、spec2 和 Karma 等主流测试框架的测试运行器和覆盖工具。开发者可以轻松执行单元测试,提升代码质量。青岛源码科技

       IDE 还内置了反编译器,无需借助第三方插件,即可查看没有源代码的库。内置终端功能,让开发者无需离开 IDE 即可执行命令,进行代码调试。

       数据库工具方面,IntelliJ IDEA 提供了智能编码辅助功能,支持 SQL 编辑、实时数据库连接、查询执行、数据浏览和导出,以及可视化方案管理。

       应用服务器支持方面,IDE 支持 Tomcat、JBoss、WebSphere、WebLogic、Glassfish 等主流应用服务器。竞价绝杀源码开发者可以轻松部署工件到应用服务器,并在 IDE 中直接调试已部署的应用程序。

       通过 Docker 工具窗口,开发者可以连接到本地运行的 Docker 机器,管理图像、容器和 Docker Compose 服务。多语言支持是 IntelliJ IDEA 的一大亮点,它不仅支持 Java,还支持 Groovy、Kotlin、Scala、JavaScript、TypeScript 和 SQL 等其他语言。IDE 提供了顶级框架的一流支持,包括 Spring、Java EE、Grails、Play、Android、vps探针源码GWT、Vaadin、Thymeleaf、React、AngularJS 等,帮助开发者高效完成多语言项目的开发。

       IntelliJ IDEA 以其强大的功能、丰富的插件生态系统和多语言支持,成为一款功能全面、易于使用的集成开发环境,适合各类开发者在 Java 和多语言项目开发中使用。

Apache Ant和Apache Maven的区别

       Apache Ant

       1、Ant 是程序化的,你必须明确的告诉 Ant 做什么,什么时候做。你必须告诉它去编译,然后复制,然后压缩。

       2、Ant 没有生命周期,你必须定义目标和目标之间的依赖。你必须手工为每个目标附上一个任务序列。

       Apache Maven

       1、Maven 拥有约定,因为你遵循了约定,它已经知道你的源代码在哪里。它把字节码放到 target/classes,然后在 target生成一个 JAR 文件。

       2、Maven 是声明式的。你需要做的只是创建一个 pom.xml 文件然后将源代码放到默认的目录。Maven 会帮你处理其它的事情。

       3、Maven 有一个生命周期,当你运行 mvn install的时候被调用。这条命令告诉 Maven 执行一系列的有序的步骤,直到到达你指定的生命周期。遍历生命周期旅途中的一个影响就是,Maven 运行了许多默认的插件目标,这些目标完成了像编译和创建一个 JAR 文件这样的工作。

       Maven 以插件的形式为一些一般的项目任务提供了内置的智能。如果你想要编写运行单元测试,你需要做的只是编写测试然后放到/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/content-zh/src/test/java,添加一个对于 TestNG 或者 JUnit 的测试范围依赖,然后运行 mvn test。

       å¦‚果你想要部署一个web 应用而非 JAR ,你需要做的是改变你的项目类型为 war ,然后把你文档根目录置为 /usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/content-zh/src/main/webapp。当然,你可以用 Ant 做这些事情,但是你将需要从零开始写这些指令。使用 Ant ,你首先需要确定 JUnit JAR 文件应该放在哪里,然后你需要创建一个包含这个 JUnit JAR 文件的 classpath ,然后告诉 Ant 它应该从哪里去找测试源代码,编写一个目标来编译测试源代码为字节码,使用 JUnit 来执行单元测试。没有诸如 antlibs 和 lvy 等技术的支持(即使有了这些支持技术),Ant 给人感觉是自定义的程序化构建。

       é¡¹ç›®ä¸­ä¸€ç»„高效的坚持约定的 Maven POM ,相对于 Ant 的配置文件,只有很少的 XML 。

       Maven 的另一个优点是它依靠广泛公用的 Maven 插件。所有人使用 Maven Surefire 插件来运行单元测试,如果有人添加了一些针对新的测试框架的支持,你可以仅仅通过在你项目的 POM 中升级某个特定插件的版本来获得新的功能。

       ä½¿ç”¨ Maven 还是 Ant 的决定不是非此即彼的,Ant 在复杂的构建中还有它的位置。如果你目前的构建包含一些高度自定义的过程,或者你已经写了一些 Ant 脚本通过一种明确的方法完成一个明确的过程,而这种过程不适合 Maven 标准,你仍然可以在Maven 中用这些脚本。作为一个 Maven 的核心插件, Ant 还是可用的。自定义的插件可以用 Ant 来实现,Maven 项目可以配置成在生命周期中运行 Ant 的脚本。

单元测试实践

       非常有意思的一段话:

       我们用得最多的基本单元测试框架是junit和testng,下面对这两个工具做个对比。

       通过上面的对比可以看出,TestNG作为Java项目的单元测试框架是更有优势的,TestNG在参数化测试、依赖测试、套件测试、分组测试、并发测试等方面都比Junit4强,同时,TestNG涵盖了JUnit4的全部功能。

       所以下面的案例说明都是基于TestNG来写的。

       为方便对后面内容的理解,先写一个单元测试:

       这是一个验证rsa加解密功能的单元测试。

       TestMain是抽象出来,用于启动spring容器以及支持testng用例自动注入bean,因为启动spring容器总是很耗时的,如果我们的测试用例用不到依赖的spring bean,最好不雅启动spring容器,TestMain源码:

       这就是TestMain最好放在和工程Application类所在包相同路径下的原因,比如我的示例中TestMain和BoardServerApplication都在相同包路径下:com.allawn.athletic.board.server。

       检查TestNG插件是否存在

       插件搜索“Coverage”

       在我们的pom文件下加如下plugin配置:

       idea插件自带,带搜索插件“PIT mutation testing”,但不建议用,很难调通!

       本地开发环境

       IDE自动创建单元测试的方法(也可手动完成):

       创建后的单元测试在Maven工程的test目录下生成测试类:

       注意:如果之前没有test目录,则需要手动创建一下:

       然后再把目录设置为test目录。设置方法:file -> Project Structure -> Modules

       运行单元测试

       创建单元测试

       Maven执行的相关命令:

       如果单元测试不通过,出现如下:

       两种方式皆可运行。

       运行不通过则则会有提示

       要通过maven运行单元测试,要保证pom配置没有跳过单元测试,检查设置如下:

       IDEA可以直接生成覆盖率报告,导出来的覆盖率报告长这样:

       点击index.html即可看报告内容:

       变异测试,英文Mutation Testing,是使用变异器 (切换数学运算符,更改返回类型,删除调用等)将代码修改为不同的变异(基于变异器创建新代码),并检查单元测试是否失败。好的单元测试应该使所有突变都失败(杀死)。

       主要列出testng的测试方法,junit的测试方法请另行百度。

       异常测试是指在单元测试中应该要抛出什么异常是合理的,可以检测我们方法中指定跑出的异常,类似这种:

       如果我们有时候不想测试某些方法的单元测试,那么我们可以指定这些具体的单元测试跳过不执行,testng和junit4都支持忽略测试,testng通过@Test(enabled=false)跳过。

       指定某个单元测试方法最长执行时间,如果超时了就算失败,testng中的timeout单位是毫秒。

       套件测试是指把多个单元测试组合成一个模块,然后一起运行,在套件定义中还可以通过定义组,针对相同组名的单元测试统一运行。

       为方便我们模拟单元测试的传参,testng提供了@DataProvider注解,我们可以在单元测试内设置多种参数值,单元测试会依次把入参都跑一遍。被@DataProvider修饰的方法,返回值是数组形式。

       依赖测试是指测试的方法是有依赖的,在执行的测试之前需要执行的另一测试。如果依赖的测试出现错误,所有的子测试都被忽略,且不会被标记为失败。

       TestNG支持通过多个线程并发调用一个测试接口来实现性能测试,invocationCount表示方法调用的次数,threadPoolSize表示并发线程数量,timeOut即是每次调用最大耗时时间。

       通过多线程并行调用多个测试方法,在我们套件/组测试的时候,如果使用并行测试,可以大大减少测试运行时间。

       Mock的使用场景:

       Mockito有比较简洁的API,简单易学,可读性强。从Mockito2开始,Mockito支持了很多新特性以及新注解(所以依赖mockito2.x以上版本的需要java8及以上jdk方可),使用很便捷,spring-boot-starter-test包默认内置mockito,鉴于维护性和语言新特性的支持,个人建议使用Mockito作为单元测试的mock工具。

       在有需要的地方进行mock,否则走真实方法调用。

       除了采用静态方法spy以外,还可以通过采用注解的方式:

       结果示例:

       除了@Spy注解需要如此设置,@Mock、@Captor、@InjectMocks等注解也需要。

       对整个class进行mock

       结果:

       Junit5使用手册: junit.org/junit5/docs/c...

       在Junit5中要使用Mockito,需要单独引入mockito-junit-jupiter依赖包,通过在单元测试类上加

       @ExtendWith(MockitoExtension.class)

       实现构建一个mock运行容器。

       在有需要的地方进行mock,否则走真实方法调用。

       除了采用静态方法spy以外,还可以通过采用注解的方式:

       结果示例:

       结果:

Java的常用开发工具?

       java常用的开发工具。都说工欲善其事必先利其器,要想学好java这门语言,选择一款好用顺手的开发工具是必不可少的。另外昌平镇北大青鸟认为面试java工作时开发工具的使用也是一个重要的考核点。

       è¦æƒ³å…¨é¢äº†è§£java开发工具,我们首先需要先了解一下java程序的开发过程,通过这个过程我们能够了解到java开发都需要用到那些工具。

       1、要想编写程序,需要一个能编写源代码的编辑工具。例如:Notepad++; 

       2、要想测试程序,需要一个编译、执行工具。例如:JDK; 

       3、要想单独测试一个单元,需要一个单元测试工具。例如:JUnit、TestNG;

        4、要想编写开发文档,需要开发文档编辑工具。例如:word、Excel、PPT;

        5、要想分析设计程序,需要程序的分析设计工具。例如:StarUML; 

       6、要想方便管理源码和版本升级,需要源码管理和版本维护工具。例如:SVN,Git;

        7、要想多个团队协作开发或者项目用到很多的第三方类库和Jar包。需要自动化构建工具。例如:Maven、gradle; 

       8、要想在一个工具中使用以上所有功能,需要用到集成开发工具IDE。例如:Eclipse;

       å¤§å®¶çœ‹åˆ°è¿™ä¹ˆå¤šå·¥å…·æ˜¯ä¸æ˜¯å¾ˆå¤´ç–¼ã€‚哈哈:)所以说java开发入门门槛有点高。没关系。后面的课程我会一个一个逐步给大家详细介绍。下面我们先简单了解一下这些java开发常用工具。

相关栏目:时尚