超越JUnit –测试框架的替代方案

JUnit是事实上的Java单元测试框架,但是可能有一些新的(不是那么新的)框架可以用于Web开发。 在采用之前可能要问自己的问题:
  • 它们是否快速,容易开发,因此成本低廉?
  • 他们运行快并因此鼓励采用吗?
  • 他们需要维护并因此产生持续的成本吗?
  • 我可以在每晚的版本中执行它们吗?
  • 他们最终是否允许您更快地编写更多无错误代码?

莫基托

这是一个模拟框架,可以轻松快捷地创建模拟支持的测试。 这样可以减少建立数据库的成本,并避免编写自己的数据库。 该API似乎并不稳定,但语法简洁明了。

http://mockito.org/

SureAssert

SureAssert具有用于编写测试的基于注释的机制。 这使编写测试变得容易,并且Eclipse插件意味着您对增量构建进行了增量测试。

http://www.sureassert.com/

JS测试驱动程序

与下面的Selenium类似,这允许您使用JUnit样式语法为JavaScript创建测试用例。 主要警告是您需要适当地考虑测试以适合测试,而我见过的大多数JavaScript并非如此。

http://code.google.com/p/js-test-driver/

Selenium是自上而下的浏览器插件和框架,它使您可以在浏览器中记录一组类似于宏的操作以及对这些操作的一组断言。 例如

  1. 打开第X页。
  2. 单击按钮Y。
  3. 预期文字Z。

很好,因为测试专注于重要场景(检查页面是否真正打开并且交易确实发生),并且可以作为JUnit测试导出,可以作为夜间构建的一部分运行。 然而。 它很脆弱,并且因为它取决于应用程序的运行,所以速度很慢。

http://seleniumhq.org/

参考: Alex Collins博客中来自JCG合作伙伴 Alex Collins的JUnit之外 。


翻译自: https://www.javacodegeeks.com/2012/04/beyond-junit-testing-frameworks.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373175.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tensorflow mnist read_data_sets fails

下载处理mnist数据时出现如下错误 VisibleDeprecationWarning: converting an array with ndim > 0 to an index will result in an error in the future 解决方法: 在input_data.py文件中return numpy.frombuffer(bytestream.read(4), dtypedt) 后添加[0] retur…

斑马打印机linux驱动安装教程,linux-Zebra软件包的基本安装与配置

Zebra是一个路由软件包,提供基于TCP/IP路由服务,支持RIPv1, RIPv2, RIPng, OSPFv2, OSPFv3, BGP- 4,和 BGP-4等众多路由协议。Zebra还支持BGP特性路由反射器(Route Reflector)。除了传统的 IPv4路由协议,Zebra也支持IPv6路由协议。如果运行的…

iOS 改变App状态栏颜色为白色

默认状态栏为黑色,对于某些App不是很美观,变成白色很简单,只需要两个步骤。 1.在Info.plist中添加新项目,View controller-based status bar appearance,Boolean值为No. 2.在AppDelegate的- (BOOL)application:(UIAppl…

Java 7对抑制异常的支持

在JDK 7中 ,向Throwable类( Exception和Error类的父类)添加了一个新的构造函数和两个新方法。 添加了新的构造函数和两个新方法以支持“抑制的异常”(不要与吞咽或忽略异常的不良做法相混淆)。 在本文中,我…

linux 如何做共享磁盘阵列,在Linux上玩转磁盘阵列分享

大部分用户都会担心,万一硬盘发生故障,一、使用磁盘阵列可以带来哪些好处?在具体如何配置磁盘阵列之前,笔者要先给大家介绍一下利用磁盘阵列的好处。先给大家一点动力,让大家能够继续看下面的内容。第一个好处是磁盘阵列可以提高…

my-innodb-heavy-4g.cnf

my-innodb-heavy-4g.cnf转载于:https://www.cnblogs.com/xiluhua/p/6231834.html

易于使用的单位和集成代码

此示例说明如何使用Maven和Sonar生成单元测试和集成测试的覆盖率。 它使用非常简单的技术,只需10-15分钟即可在任何现有的Maven构建中运行。 它可用于单元,集成,ATDD或任何其他类型的测试套件。 覆盖率结果显示在Sonar中。 有什么事吗&#x…

Dij的堆优化

#include<algorithm> #include<iostream> #include<cstdio> #include<cstring> #include<queue> #define M 100000 #define pa pair<int,int>//优先比较第一个元素 using namespace std; int d[M],n,m,cnt,head[M],next[M],u[M],dis[M],n…

linux db2sysc 内存,db2sysc进程占用linux内存持续增长,请各位指点。

该服务器近期做过的变更情况&#xff1a;变更前&#xff0c;使用 sar -r 1 3 看内存使用率服务器内存使用率一直是70%该服务器原为独立物理服务器&#xff0c;经过虚拟化迁移到EXS上成为虚拟服务器。迁移后发现swap无法启动。原因是原物理服务器硬盘控制器为cciss。/etc/fstab …

k8s的探针

一、探针原理 分布式系统和微服务体系结构的挑战之一是自动检测不正常的应用程序&#xff0c;并将请求&#xff08;request&#xff09;重新路由到其他可用系统&#xff0c;恢复损坏的组件。健康检查是应对该挑战的一种可靠方法。使用 Kubernetes&#xff0c;可以通过探针配置运…

第一百三十节,JavaScript,封装库--连缀

JavaScript&#xff0c;封装库--连缀 学习要点&#xff1a; 1.连缀介绍 2.改写库对象 本章我们重点来介绍&#xff0c;在调用库的时候&#xff0c;我们需要能够在前台调用的时候可以同时设置多个操作&#xff0c;比如设置CSS&#xff0c;设置innerHTML&#xff0c;设置click事件…

Spring3:类型安全依赖项注入

在从Spring跳到类型安全依赖注入之前&#xff0c;我想讨论一下我们之前所做的方式。 我们一直在借助Spring的Autowired注释按类型使用依赖项注入。 像这样的东西会注入Spring Bean。 Autowired private StudentDao studentDao; // Autowires by type. Injects the instance who…

userData IE

蛮讨厌IE的&#xff0c;因为他常常需要特别照顾&#xff0c;就像DOM Storage(sessionStorage和localStorage)只能支持IE8&#xff0c;对于以下的只能使用userData。 原理&#xff1a;通过在document元素后面附加一个专属的“DHTML行为”来实现客户端存储&#xff0c; var memor…

context元素大概解说

Context元素代表一个web应用&#xff0c;运行在某个特定的虚拟主机上。如Servlet Specification 2.2或以后版本中描述的那样&#xff0c;每个web应用基于一个Web Application Archive(WAR)文件&#xff0c;或者是一个目录&#xff0c;包含WAR文件解压后的内容。有关Web Applica…

全新的Play模块资料库

去年11月&#xff0c;我曾与Play框架的 Nicolas Leroux谈过创建模块存储库的问题。 他同意这将是一个好主意&#xff0c;但是时间不足使我无法开始。 在上周Google Play小组发生了暴风雨之后&#xff0c;我决定将其优先处理。 可以在几周内提供可工作的原型。 概述&#xff1a;…

Ubuntu 16.04 安装 VMware-Workstation-12

以前一直使用 Ubuntu Virtaulbox &#xff0c;最近测试了 VMware-Workstation-9,性能超过 Virtaulbox-4.2.x,下面是详细步骤:1 首先准备一个Ubuntu 系统 lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04 LTS Release: 16.04 …

Linux的md64进程,在Linux上安装Elasticsearch Kibaba.md(示例代码)

在Linux上安装Elasticsearch KibabaKibana是一个开源为elasticsearch 引擎提供数据和数据分析1、下载安装切换到root账户&#xff0c;按顺序依次执行以下命令rpm包安装$wget -c https://artifacts.elastic.co/downloads/kibana/kibana-5.5.3-x86_64.rpm$sha1sum kibana-5.3.2-x…

SSH实战 · 唯唯乐购项目(中)

用户模块三&#xff1a;一级分类的查询创建一级分类表并导入基本数据CREATE TABLE category (cid int(11) NOT NULL AUTO_INCREMENT,cname varchar(255) DEFAULT NULL,PRIMARY KEY (cid)) ENGINEInnoDB AUTO_INCREMENT11 DEFAULT CHARSETutf8;建包及相应的类:com.weiwei.shoppi…

播放2 –模块,插件有什么区别?

关于Play 2模块和插件似乎有些混乱。 我想这是因为两者经常是同义词。 在Play&#xff08;两个版本-1和2&#xff09;中&#xff0c;存在明显的差异。 在本文中&#xff0c;我将介绍什么是插件&#xff0c;如何在Java和Scala中实现插件&#xff0c;以及如何从模块导入插件。 外…

Linux多线程贝叶斯建树教程,建树经验.doc

建树经验分子进化树构建及数据分析的简介mediocrebeing, rodger, lylover, klaus, oldfish, yzwpf一、引言开始动笔写这篇短文之前&#xff0c;我问自己&#xff0c;为什么要写这样的文章&#xff1f;写这样的文章有实际的意义吗&#xff1f;我希望能够解决什么样的问题&#x…