为什么 Jest 的 expect 中的字符串比较没有失败?
Why is this string comparison in Jest's expect not failing?
我正在 ReactJS
和 Jest
迈出第一步。
下面的期望通过了,尽管它不应该通过。查看 属性 是如何打印的:
console.log(searchBox.props.url_variation);
// prints: curation/get_site_variations/
那么为什么 expect 没有失败?
jest.dontMock('../databank_web/static/js/curation_tools/SearchBox.js');
describe('SearchBox', function () {
it('loads results after click', function () {
var React = require('react/addons');
var TestUtils = React.addons.TestUtils;
var SearchBox = require('../databank_web/static/js/curation_tools/SearchBox.js');
// Render the form?
var searchBox = TestUtils.renderIntoDocument(<SearchBox
url_variation="curation/get_site_variations/"
url_golden="curation/golden_record/"/>);
console.log(searchBox.props.url_variation); // prints: curation/get_site_variations/
expect(searchBox.props.url_variation === "fail");
// Why is this passing? fail is not equal to 'curation/get_site_variations/'
});
});
将您的期望更改为以下内容:
expect(searchBox.props.url_variation).toEqual("fail")
这会导致测试失败。它通过的原因是 expect(false)
不会导致测试失败。我相信这种行为实际上是从 Jasmine 继承而来的,在 Jasmine 中,期望本身就是价值观。链式匹配器是导致测试通过或失败的原因。
我正在 ReactJS
和 Jest
迈出第一步。
下面的期望通过了,尽管它不应该通过。查看 属性 是如何打印的:
console.log(searchBox.props.url_variation);
// prints: curation/get_site_variations/
那么为什么 expect 没有失败?
jest.dontMock('../databank_web/static/js/curation_tools/SearchBox.js');
describe('SearchBox', function () {
it('loads results after click', function () {
var React = require('react/addons');
var TestUtils = React.addons.TestUtils;
var SearchBox = require('../databank_web/static/js/curation_tools/SearchBox.js');
// Render the form?
var searchBox = TestUtils.renderIntoDocument(<SearchBox
url_variation="curation/get_site_variations/"
url_golden="curation/golden_record/"/>);
console.log(searchBox.props.url_variation); // prints: curation/get_site_variations/
expect(searchBox.props.url_variation === "fail");
// Why is this passing? fail is not equal to 'curation/get_site_variations/'
});
});
将您的期望更改为以下内容:
expect(searchBox.props.url_variation).toEqual("fail")
这会导致测试失败。它通过的原因是 expect(false)
不会导致测试失败。我相信这种行为实际上是从 Jasmine 继承而来的,在 Jasmine 中,期望本身就是价值观。链式匹配器是导致测试通过或失败的原因。