我有一个元素在悬停另一个元素时变得可见。这一切都是用纯 CSS 处理的,没有使用 Angular 或 JavaScript。是否可以使用 Jasmine 查看当鼠标悬停在所选元素上时该元素是否可见?我看过其他类似的帖子,很多时候答案似乎是使用 Angular 指令或在 JavaScript 中编码样式更改。我不想那样做,纯 CSS 解决方案效果很好。到目前为止,这是我的代码:
CSS
.wrapper {
position: relative;
}
.wrapper .content {
background: white;
border: 1px solid black;
color: black;
font-size: 12px;
left: 50%;
opacity: 0;
position: absolute;
top: -30px;
visibility: hidden;
}
.wrapper:hover .content {
opacity: 1;
visibility: visible;
}
HTML
<div class="wrapper">
Show the hidden element on hover
<div class="content">I am now visible!</div>
</div>
茉莉花单元测试
it('should display the hidden element when wrapper is hovered over', () => {
const wrapper = fixture.debugElement.query(By.css('.wrapper'));
const content = fixture.debugElement.query(By.css('.content'));
let styles = window.getComputedStyle(content.nativeElement);
wrapper.triggerEventHandler('mouseover', null);
fixture.detectChanges();
expect(styles.visibility).toBe('visible');
});
单元测试失败,说它期望visibility属性是hidden.