Javascript测试框架Jasmine(二):Matchers

测试报告会自动追加到页尾

  1. describe("Jasmine内置Matcher示例:", function() {
  2.  
  3. it("toBe Matcher用来执行 === 对比", function() {
  4. var a = 12;
  5. var b = a;
  6.  
  7. expect(a).toBe(b);
  8. expect(a).not.toBe(null);
  9. });
  10.  
  11. describe("toEqual判断两个对象是否相等:", function() {
  12.  
  13. it("对比简单的值类型的变量", function() {
  14. var a = 12;
  15. expect(a).toEqual(12);
  16. });
  17.  
  18. it("对比对象", function() {
  19. var foo = {
  20. a: 12,
  21. b: 34
  22. };
  23. var bar = {
  24. a: 12,
  25. b: 34
  26. };
  27. expect(foo).toEqual(bar);
  28. });
  29. });
  30.  
  31. it("toMatch用来进行正则匹配", function() {
  32. var message = "foo bar baz";
  33.  
  34. expect(message).toMatch(/bar/);
  35. expect(message).toMatch("bar");
  36. expect(message).not.toMatch(/quux/);
  37. });
  38.  
  39. it("toBeDefined判断是否非undefined", function() {
  40. var a = {
  41. foo: "foo"
  42. };
  43.  
  44. expect(a.foo).toBeDefined();
  45. expect(a.bar).not.toBeDefined();
  46. });
  47.  
  48. it("toBeUndefined判断是否是undefined", function() {
  49. var a = {
  50. foo: "foo"
  51. };
  52.  
  53. expect(a.foo).not.toBeUndefined();
  54. expect(a.bar).toBeUndefined();
  55. });
  56.  
  57. it("toBeNull用来判断是否为null", function() {
  58. var a = null;
  59. var foo = "foo";
  60.  
  61. expect(null).toBeNull();
  62. expect(a).toBeNull();
  63. expect(foo).not.toBeNull();
  64. });
  65.  
  66. it("toBeTruthy执行布尔测试,判断值是否是,或者可以转换为true", function() {
  67. var a, foo = "foo";
  68.  
  69. expect(foo).toBeTruthy();
  70. expect(a).not.toBeTruthy();
  71. });
  72.  
  73. it("toBeFalsy和toBeTruthy相反", function() {
  74. var a, foo = "foo";
  75.  
  76. expect(a).toBeFalsy();
  77. expect(foo).not.toBeFalsy();
  78. });
  79.  
  80. it("toContain判断一个数组是否包含某个值", function() {
  81. var a = ["foo", "bar", "baz"];
  82.  
  83. expect(a).toContain("bar");
  84. expect(a).not.toContain("quux");
  85. });
  86.  
  87. it("toBeLessThan执行数字大小比较", function() {
  88. var pi = 3.1415926,
  89. e = 2.78;
  90.  
  91. expect(e).toBeLessThan(pi);
  92. expect(pi).not.toBeLessThan(e);
  93. });
  94.  
  95. it("toBeGreaterThan和toBeLessThan相反", function() {
  96. var pi = 3.1415926,
  97. e = 2.78;
  98.  
  99. expect(pi).toBeGreaterThan(e);
  100. expect(e).not.toBeGreaterThan(pi);
  101. });
  102.  
  103. it("toBeCloseTo示例", function() {
  104. var pi = 3.1415926,
  105. e = 2.78;
  106.  
  107. expect(pi).not.toBeCloseTo(e, 2);
  108. expect(pi).toBeCloseTo(e, 0);
  109. });
  110.  
  111. it("toThrow判断一个函数是否有抛出异常", function() {
  112. var foo = function() {
  113. return 1 + 2;
  114. };
  115. var bar = function() {
  116. return a + 1;
  117. };
  118.  
  119. expect(foo).not.toThrow();
  120. expect(bar).toThrow();
  121. });
  122. });
Ran 0 of 14 specs - run all0 specs, 0 failures