57 lines
1.7 KiB
Plaintext
57 lines
1.7 KiB
Plaintext
It is very easy to write incomplete assertions when using some test frameworks. This rule enforces complete Chai assertions in the following cases:
|
|
|
|
* when ``++assert.fail++``, ``++expect.fail++`` or ``++should.fail++`` are present but not called.
|
|
* when an ``++expect(...)++`` or ``++should++`` assertion is not followed by an assertion method, such as ``++equal++``.
|
|
* when an ``++expect++`` or ``++should++`` assertion ends with a https://www.chaijs.com/api/bdd/#method_language-chains[chainable getters], such as ``++.that++``, or a modifier, such as ``++.deep++``.
|
|
* when an ``++expect++`` or ``++should++`` assertion function, such as ``++.throw++``, is not called.
|
|
|
|
In such cases, what is intended to be a test doesn't actually verify anything
|
|
|
|
== Noncompliant Code Example
|
|
|
|
----
|
|
const assert = require('chai').assert;
|
|
const expect = require('chai').expect;
|
|
|
|
describe("incomplete assertions", function() {
|
|
const value = 42;
|
|
|
|
it("uses chai 'assert'", function() {
|
|
assert.fail; // Noncompliant
|
|
});
|
|
|
|
it("uses chai 'expect'", function() {
|
|
expect(1 == 1); // Noncompliant
|
|
expect(value.toString).to.throw; // Noncompliant
|
|
});
|
|
});
|
|
----
|
|
|
|
== Compliant Solution
|
|
|
|
----
|
|
const assert = require('chai').assert;
|
|
const expect = require('chai').expect;
|
|
|
|
describe("incomplete assertions", function() {
|
|
const value = 42;
|
|
|
|
it("uses chai 'assert'", function() {
|
|
assert.fail();
|
|
});
|
|
|
|
it("uses chai 'expect'", function() {
|
|
expect(1).to.equal(1);
|
|
expect(value.toString).throw(TypeError);
|
|
});
|
|
});
|
|
----
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::../comments-and-links.adoc[]
|
|
endif::env-github,rspecator-view[]
|