Blog

Blog

PHODAL

ThoughtWorks郑大晔校的一天(3)——Javascript的TDD,Jasmine

似乎我应该第二次的内容补上,只是不知道写什么了,也就没有必要写了,不过这次算是有必要了。看了一些敏捷开发的书,在想是不是也有Javascript也要有个测试框架,也会有类似于Ruby的Rspec,java的Junit。 不过,似乎我印象里有个Qunit,和jQuery是一家子的,这个留给过些时候学吧,因为今天讲到了Jasmine和RSpec和有点像。

Rspec以及Jasmine

来些Rspec的测试代码吧

  
describe LedStatus do let(:ledstatus){LedStatus.new()} describe "Observable" do it "Should have a result" do led=Led.new end end end
我似乎把代码写得有点不理想了,但是这个不是很重要,应该不是很重要。。似乎真的不是很重要。。

测试一下

rspec --format d

会有如下结果:

LedStatus
  Observable
    Should have a result

Finished in 0.00065 seconds
1 example, 0 failures

然后,我们先看看jasmine的测试结果

Jasmine2.0.0 finished in 0.003s

1 spec, 0 failures Add function should be return

对了,忘了说一下Jasmine的测试

Jasmine

Jasmine is a behavior-driven development framework for testing JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean, obvious syntax so that you can easily write tests.

似乎这个是BDD,不过已经无关紧要了,因为Rspec也是,似乎我没有理解好。

官网地址 http://pivotal.github.io/jasmine/

直接下载官方的示例我们可以看到我们的运行结果。

接着我们创建一下简单的add函数,这个是直接从课堂上拉过来的。。


    describe("Add function", function() {
      it("should be return", function() {
        var result=add(1,2);
        expect(result).toEqual(3);
      });
    });
SimpleSpec.js的内容

下面是Simple.js的代码

function add(num1,num2) {
  return num1+num2;
}

似乎很简单明了,再打开浏览器就可以看到结果了。。

呼呼,这就是Javascript的TDD。。

总结

原来道路一直很长,只是不会再那么艰辛。

写在技巧之后

似乎今天在讲最小物联网系统的时候没有讲好,部分原因是因为自己有些紧张,只是讲的时候似乎就没有紧张,但是就一直讲了下去。。用TWer的话来说的话,就是今天很赞。

关于我

Github: @phodal     微博:@phodal     知乎:@phodal    

微信公众号(Phodal)

围观我的Github Idea墙, 也许,你会遇到心仪的项目

QQ技术交流群: 321689806
comment

Feeds

RSS / Atom

最近文章

关于作者

Phodal Huang

Developer, Consultant, Writer, Designer

ThoughtWorks 高级咨询师

工程师 / 咨询师 / 作家 / 设计学徒

开源深度爱好者

出版有《自己动手设计物联网》、《全栈应用开发:精益实践》

联系我: h@phodal.com

微信公众号: 与我沟通

标签