- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在编写一个 JS 测试来检查图像的 css 类是否被正确应用。该类是根据图像的 naturalHeight
属性计算的。但是因为这是一个JS测试,没有DOM,所以naturalHeight
在测试中一直为0。我如何使用 Jest 和 Enzyme 正确地测试/模拟它?
组件的简化版本:
class Image extends React.Component {
public render () {
return (
<img
src={this.props.src}
ref={el => this.imageElement = el }
className={ this._computeStyle() }/>
)
}
private _computeStyle() {
if (this.imageElement.naturalHeight > 100){
return 'big';
}
return 'small'
}
}
尝试测试:
it('has class "big" if > 100 pixels', () => {
let wrapper = mount(<Image src={largeImage} />);
expect(wrapper.find('img').hasClass('big')).toBe(true);
});
最佳答案
由于 jsdom
实际上并不呈现文档,因此通常不会实现大小属性并返回一个固定的 0。
对于naturalHeight
,它是seems就像它实际上回到了 height
属性。
因此我看到两个选项:
<强>1。手动分配高度
:
wrapper.find('img').node.height = 120;
<强>2。扩展HTMLImageElement
的原型(prototype):
Object.defineProperty(HTMLImageElement.prototype, 'naturalHeight', { get: () => 120 });
关于javascript - 在没有 DOM 的情况下测试图像的 'naturalHeight',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46507306/
我有以下代码: var checkImgDim=new Image(); checkImgDim.src=e.target.result; if (input.files[0].size > M
我正在编写一个 JS 测试来检查图像的 css 类是否被正确应用。该类是根据图像的 naturalHeight 属性计算的。但是因为这是一个JS测试,没有DOM,所以naturalHeight在测试中
naturalHeight 和 naturalWidth 属性在 mozilla 网站中未提及 HTMLImageElement 对象 Link 虽然这两个属性在 Firefox 中工作正常,但我没有
所以我正在尝试根据其中包含的图像的属性进行一些非常基本的 div 重新调整大小。我知道我可以做一些非常基本的事情,比如在图像周围设置背景和填充并达到相同的效果,但这是一种个人挑战。 我遇到的问题是,当
我的类作业要我使用 defer我正在引用的脚本的标记,但这会导致图像的 naturalWidth由于我的 js 文件中的执行顺序而未定义。 我的 HTML 头部有这一行(作业要我把它放在 但使用 d
当您已经可以获得 的 naturalsize 时,是否存在这样的事件或技巧来执行代码?在使用 javascript 创建之后,但你不必等待它完全加载(图像可能是 5mb,所以你必须等待 10 + 秒
我是一名优秀的程序员,十分优秀!