炫意html5
最早CSS3和HTML5移动技术网站之一

谷歌推出Javascript测试工具 Google JS Test

Google JS Test是一个运行于V8 JavaScript引擎下的Javascript单元测试框架,其在Google内部负责对Chrome的快速JS执行速度进行测试,现在Google以开源工程开放大家使用。

Google JS Test主要特性:

  • 超快的启动速度和执行时间,不需要在浏览器里运行
  • 清爽而具有可读性的输出内容
  • 也有一个可选的基于浏览器的测试器,可在JS修改的时候刷新
  • 其样式和语义跟Google Test for C++类似
  • 内置的Mocking框架只需要最简单的样板代码(比如no $tearDown or $verifyAll 请求),其样式和语义基于Google C++ Mocking Framework
  • 匹配系统允许表达式测试,并可直观的阅读输出的错误提示,内置了很多匹配器,用户也可自行添加

Google JS Test下载地址:

   gjstest-1.0.4.tar.bz2
 
   gjstest-1.0.3.tar.bz2

 

Google JS Test示例:

这个例子是对类UserInfo的基本测试。

 

function UserInfoTest() {
  // Each test function gets its own instance of UserInfoTest, so tests can
  // use instance variables to store state that doesn't affect other tests.
  // There's no need to write a tearDown method, unless you modify global
  // state.
  //
  // Create an instance of the class under test here, giving it a mock
  // function that we also keep a reference to below.
  this.getInfoFromDb_ = createMockFunction();
  this.userInfo_ = new UserInfo(this.getInfoFromDb_);
}
registerTestSuite(UserInfoTest);

UserInfoTest.prototype.formatsUSPhoneNumber = function() {
  // Expect a call to the database function with the argument 0xdeadbeef. When
  // the call is received, return the supplied string.
  expectCall(this.getInfoFromDb_)(0xdeadbeef)
    .willOnce(returnWith('phone_number: "650 253 0000"'));

  // Make sure that our class returns correctly formatted output.
  expectEq('(650) 253-0000', this.userInfo_.getPhoneForId(0xdeadbeef));
};

UserInfoTest.prototype.returnsLastNameFirst = function() {
  expectCall(this.getInfoFromDb_)(0xdeadbeef)
    .willOnce(returnWith('given_name: "John" family_name: "Doe"'));

  // Make sure that our class puts the last name first.
  expectEq('Doe, John', this.userInfo_.getNameForId(0xdeadbeef));
};

测试的输出结果,即简介又可读。

[ RUN      ] UserInfoTest.formatsUSPhoneNumber
[       OK ] UserInfoTest.formatsUSPhoneNumber
[ RUN      ] UserInfoTest.returnsLastNameFirst
user_info_test.js:32
Expected: 'Doe, John'
Actual:   'John Doe'

[  FAILED  ] UserInfoTest.returnsLastNameFirst
[ RUN      ] UserInfoTest.understandsChineseNames
[       OK ] UserInfoTest.understandsChineseNames


原文:Google JS Test

炫意HTML5 » 谷歌推出Javascript测试工具 Google JS Test

CSS3教程HTML5教程