JS测试工具 Google JS Test

openkk 11年前
     <div id="p_fullcontent" class="detail">     <p>Google JS Test是一个运行于V8 JavaScript引擎下的Javascript单元测试框架,其在Google内部负责对Chrome的快速JS执行速度进行测试,现在Google以开源工程开放大家使用。Google JS Test主要特性:</p>     <ul>      <li>超快的启动速度和执行时间,不需要在浏览器里运行</li>      <li>清爽而具有可读性的输出内容</li>      <li>也有一个可选的基于浏览器的测试器,可在JS修改的时候刷新</li>      <li>其样式和语义跟Google Test for C++类似</li>      <li>内置的Mocking框架只需要最简单的样板代码(比如no $tearDown or $verifyAll 请求),其样式和语义基于Google C++ Mocking Framework</li>      <li>匹配系统允许表达式测试,并可直观的阅读输出的错误提示,内置了很多匹配器,用户也可自行添加</li>     </ul>     <p><img title="测试工具 Google JS Test" border="0" alt="测试工具 Google JS Test" src="https://simg.open-open.com/show/bb92c23b6532f436914ec8be62b77ee9.jpg" width="405" height="600" /><br /> </p>     <pre class="brush:javascript; toolbar: true; auto-links: false;">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));  };</pre>项目地址:     <a href="/misc/goto?guid=4958192191270999174" target="_blank">http://code.google.com/p/google-js-test/</a>     <p></p>    </div>