Google JS Test 是一个运行于V8 JavaScript引擎下的Javascript单元测试框架,其在Google内部负责对Chrome的快速JS执行速度进行测试,现在Google以开源工程开放大家使用。Google JS Test主要特性:
function UserInfoTest() { 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)); };
The test's output is clean and readable:
[ 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