function jQueryAttributeTestHelper(method, singular, plural, nameOrHash, value) {
    var keys = util.isObject(nameOrHash) ? Object.keys(nameOrHash) : [nameOrHash];
    var allRelevantAttributes = keys.reduce(function (memo, key) {
      var value = $(this.obj)[method](key);
      if (typeof value !== 'undefined') {
        memo[key] = value;
      }
      return memo;
    }.bind(this), {});

    if (arguments.length === 4 && util.isObject(nameOrHash)) {
      this.params = { operator: 'to have ' + plural + ' ' + i(nameOrHash) };
      allRelevantAttributes.should.have.properties(nameOrHash);
    } else if (arguments.length === 4) {
      this.params = { operator: 'to have ' + singular + ' ' + i(nameOrHash) };
      allRelevantAttributes.should.have.property(nameOrHash);
    } else {
      this.params = { operator: 'to have ' + singular + ' ' + i(nameOrHash) + ' with value ' + i(value) };
      allRelevantAttributes.should.have.property(nameOrHash, value);
    }
  }
Asserts _obj_ does not exist, with optional message.

@param {*} obj
@param {String} [msg]
@api public