+ 首页>>工具>>内容

工具前端测试框架Funcunit,Write better tests, faster.239次围观
前端测试框架Funcunit,Write better tests, faster.

funcunit

在我们讨论了太久的selenium和webdriver之后,我们也有必要关注一些新模式下的支持黑盒的自动化测试框架,比如当前百花齐放,火的一塌糊涂的前端领域,我们已经看到了诸如PhantomJS之类的优秀框架,今天再分享Funcunit.

我是在这里看到Funcunit的一次介绍的:《FuncUnit 和 Cucumber —— 前端测试的最佳搭档》 作者在文中还给出了他例子的github地址,感兴趣的同学可以前往看一下。

你可以在这里看到Funcunit的demo,由于采用的Qunit,Functunit的速度非常快。

Funcunit适合用于JSMVC项目的web工程的自动化测试,可以给前端测试带来很高的效率,语法非常接近JQuery:

Funcunit比较有优势的Action API

比如.scroll() FuncUnit.prototype.scroll
官方的解释是:Scrolls an element in a particular direction by setting the scrollTop or srollLeft.
更多API和介绍,直戳官网

//slowing funcunit down for dramatic effect
F.speed = 100;
 
describe('TodoMVC', function(){
  it('should create and complete todos', function() {
    var newTodo = F('#new-todo');
    newTodo.type('FuncUnit [enter]');
    newTodo.type('is [enter]');
    newTodo.type('awesome! [enter]');
 
    F('.todo label:contains("FuncUnit")').visible();
    F('.todo label:contains("is")').visible();
    F('.todo label:contains("awesome")').visible();
 
    F('.toggle:not(:checked)').click();
    F('.toggle:not(:checked)').click();
    F('.toggle:not(:checked)').click();
 
    F('#clear-completed').click();
    F('.todo.completed').missing();
  });
 
  it('should filter todos, then complete', function() {
    var newTodo = F('#new-todo');
    newTodo.type('Simple [enter]');
    newTodo.type('Event [enter]');
    newTodo.type('Simulation [enter]');
 
    F('.toggle:not(:checked)').click();
    F('.toggle:not(:checked)').click();
 
    F('a:contains("Active")').click();
    F('.todo label:contains("Simple")').invisible();
    F('.todo label:contains("Event")').invisible();
    F('.todo label:contains("Simulation")').visible();
 
    F('a:contains("Completed")').click();
    F('.todo label:contains("Simple")').visible();
    F('.todo label:contains("Event")').visible();
    F('.todo label:contains("Simulation")').invisible();
 
    F('a:contains("All")').click();
    F('.todo label:contains("Simple")').visible();
    F('.todo label:contains("Event")').visible();
    F('.todo label:contains("Simulation")').visible();
 
    F('.toggle:not(:checked)').click();
    F('#clear-completed').click();
    F('.todo.completed').missing();
  });
 
  it('should destroy todos', function() {
    F('#new-todo').type('Sweet. [enter]');
 
    F('.todo label:contains("Sweet.")').visible();
    F('.destroy').click();
 
    F('.todo label:contains("Sweet.")').missing();
  });
});

配合BDD使用的案例

可以参见上述分享的文章链接。

其他可参考的BDD组合

python的behave+PhantomJS应该也是非常好的,能够落地的组合。

+ 猜你喜欢...

===== 关于 DiggerPlus =====
DiggerPlus是国内新锐测试人垂直内容博客,专注于挖掘测试工具,普及测试技术,专注于测试人能力提升,博客上线后就受到广大测试人的热烈追捧;此外,DiggerPlus深度整合评测资源,揭秘科技数据和真相,让读者更懂科技,更好地把玩科技。 我们始终保持"独立,客观,严谨,优秀"的优良作风,努力为读者带来源源不断的优质内容。想访问更多酷毙的测试人网站?赶紧来DiggerPlus测试人网址导航看看吧!

===== DiggerPlus Team =====
DiggerPlus Team是DiggerPlus官方发起的团队,这是一群热爱科技,热爱测试,喜欢深度挖掘的热血测试人,他们是评测师,测试专家。 我们欢迎优秀的测试人加入DiggerPlus Team。 加入DiggerPlus,可以成为我们的认证Dper,认证Dper拥有DiggerPlus独一无二的专栏并得到个人展示。

===== DiggerPlus 官方读者群 =====
DiggerPlus官方读者群(一)

+ 关于本文作者

Python/C/C++/Javascript程序员,持续学习者,目前专注于前端开发。

的专栏 | 专栏作者 | 访问小A的主页

+ 已有2个评论

开源中国精彩推送

基于开源中国OpenAPI开发
  • Copyright © 2014 DiggerPlus. 54 queries in 0.490 seconds.
    使用合作网站账号快速登录,更多精彩等着您: 开源中国