Веб-приложения на JavaScript

Page 144

Блочное тестирование

143

th is .A s s e t.a ttrib u te s = ["name"]; var a = th is .A s s e t.in it( ) ; a.name = " te st.p d f"; a .id = 1; e q u a ls(a .a ttrib u te s (), { name: " te st.p d f id: 1 }); Если его опробовать, вы увидите, что он не будет пройден, как на странице, по­ казанной на рис. 9.2. Это потому что в функции equals () используется оператор сравнения ==, который будет давать отрицательный результат для объектов и мас­ сивов. Вместо этого нам нужно воспользоваться функцией same(), осуществляю­ щей глубокое сравнение, и наш комплект тестов будет снова пройден: test("attributes()", function(){ this.Asset.attributes = ["name"]; var a = this.Asset.init(); a.name = "test.pdf"; a.id = 1;

sam e(a .attrib u tes(), { name: " te st.p d f", id: 1 }); QUnit включает пару других типов утверждений: notEqual() и raisesQ . Полную версию примеров их применения можно найти в assets/ch09/qunit/model.test.js или в документации по QUnit.

QUnit Test Suite ■ Q Hkde passed tests MoziHa/5.0 (Macintosh; U; Intel M ac O S X 10 в 6; en-US) AppleWebKrt/534.13 {KHTML, like Gecko) Chrome/9.0.597.107 Safarl/534.13

Testis completed n 19 mftseconda, 3 tes+s of 4 passed 1 faded. 1. Model

toadQ (0. 3, $

Рис. 9.2. Проваленные тесты в QUnit


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.