- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在编写一个带有 Button
组件的简单 React 应用程序,如下所示:
import React, { Component } from 'react';
// shim to find stuff
Array.prototype.contains = function (needle) {
for (var i = 0; i < this.length; i++) {
if (this[i] == needle) return true;
}
return false;
};
class Button extends Component {
propTypes: {
text: React.PropTypes.string.isRequired,
modifiers: React.PropTypes.array
}
render() {
return(
<span className={this.displayModifiers()}>{this.props.text}</span>
);
}
displayModifiers() {
const modifiers = this.props.modifiers || ["default"];
if (modifiers.contains("default") ||
modifiers.contains("danger") ||
modifiers.contains("success")) {
// do nothing
} else {
// add default
modifiers.push("defualt");
}
var classNames = "btn"
for (var i = 0; i < modifiers.length; i++) {
classNames += " btn-" + modifiers[i]
}
return(classNames);
}
}
export default Button;
然后我写了这个来测试它:
it("contains the correct bootstrap classes", () => {
expect(mount(<Button modifiers={["flat"]}/>).html()).toContain("<span class=\"btn btn-flat btn-default\"></span>");
});
该代码应该可以通过,但我收到以下错误消息:
expect(string).toContain(value)
Expected string:
"<span class=\"btn btn-flat btn-defualt\"></span>"
To contain value:
"<span class=\"btn btn-flat btn-default\"></span>"
at Object.it (src\__tests__\Button.test.js:42:293)
有什么想法为什么这没有通过吗?
最佳答案
来自文档:
Use
.toContain
when you want to check that an item is in a list.
要测试字符串,您应该使用 toBe
或 toEqual
it("contains the correct bootstrap classes", () => {
expect(mount(<Button modifiers={["flat"]}/>).html()).toBe("<span class=\"btn btn-flat btn-default\"></span>");
});
但是有一种更好的方法来测试输出渲染组件:snapshots 。
it("contains the correct bootstrap classes", () => {
expect(mount(<Button modifiers={["flat"]}/>).html()).toMatchSnapshot();
});
请注意,您将需要 enzymeToJson使用 enzyme 进行快照测试。
关于node.js - 即使存在匹配值,Jest/Jasmine .toContain() 也会失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41916612/
我正在使用 jasmine用于测试 JavaScript 代码。 我想以这种方式检查渲染函数的内容: expect(this.view.el.innerHTML).toContain(''+ 'reg
众所周知,expect 被 jest 取代了。 expect 的一些属性也会改变。其中之一是 toContain,它被称为 toInclude。你会在这里找到它:https://github.com/
我正在研究使用 Jasmine JS 的 TDD 和单元测试,我对他们的方法有疑问。 我找到了两种方法,想知道有什么区别。 describe('Teste do toContain', () => {
我有一个字符串数组 names,它会动态填充数据集中的名称。即使数据集发生变化,此数组中的三个名称始终相同。因此,在我的规范中,我想检查名称数组是否包含这三个特定名称。但是匹配器并没有在 Jasmin
我正在编写一个带有 Button 组件的简单 React 应用程序,如下所示: import React, { Component } from 'react'; // shim to find st
我是一名优秀的程序员,十分优秀!