70 lines
1.9 KiB
Plaintext
70 lines
1.9 KiB
Plaintext
== Why is this an issue?
|
|
|
|
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
|
|
|
|
[source,javascript]
|
|
----
|
|
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
|
|
|
|
[source,javascript]
|
|
----
|
|
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[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::../message.adoc[]
|
|
|
|
include::highlighting.adoc[]
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::../comments-and-links.adoc[]
|
|
endif::env-github,rspecator-view[]
|