- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在用 Jasmine 和 Karma 学习单元测试。我的测试用例正在通过,但我不明白一件事。这是我的 typescript :
// array list of objects where each month will have one object i.e. 12 objects (Jan to Dec)
monthsData: Array<{
monthName: string;
monthYear: number;
isInRange: boolean;
isLowerEdge: boolean;
isUpperEdge: boolean;
}>;
rangeState: { edge1Exists: boolean; edge2Exists: boolean; edgeIndexes: Array<number> };
initRangeState() {} <---- method which should be called; Not important for this question
it('should re-initialize range state when reflection is triggered', () => {
fixture.detectChanges(); <--- why this is required ?
const rangeState = { edge1Exists: true, edge2Exists: true, edgeIndexes: [] };
const monthsData = {
monthName: 'Jan',
monthYear: 2020,
isInRange: true,
isLowerEdge: true,
isUpperEdge: false
};
fixture.componentInstance.rangeState = rangeState;
fixture.componentInstance.monthsData[0] = monthsData;
...
expect(fixture.componentInstance.initRangeState).toHaveBeenCalled();
});
rangeState
和
monthsData
时。那么为什么我首先需要运行
fixture.detectChanges()
。我的测试用例没有调用就失败了。请告诉我背后的原因。我确定有些事情我不知道。
fixture.detectChanges()
后的屏幕截图:
最佳答案
来自 https://angular.io/guide/testing :
You must tell the TestBed to perform data binding by calling fixture.detectChanges().
Delayed change detection is intentional and useful. It gives the tester an opportunity to inspect and change the state of the component before Angular initiates data binding and calls lifecycle hooks.
关于angular - 为什么单元测试需要 fixture.detectChanges() [Jasmine/Karma],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62180812/
我正在使用 ng2-toastr 并收到以下错误 https://www.npmjs.com/package/ng2-toastr Attempt to use a destroyed view: d
有以下 2 个实体,具有以下属性: Parent ID Children Child ID ParentID Parent 现在我有以下代码: db.Confi
这个问题在这里已经有了答案: Angular 2 - View not updating after model changes (5 个答案) 关闭 6 个月前。 我正在开发 Angular 4
我使用的是 Angular2 的最终版本。 fixture.detectChanges() 调用了哪些生命周期事件,调用顺序是什么? 这方面的文档在哪里? 最佳答案 使用 fixture.detect
我正在尝试测试一个组件调用 detectChanges上面注入(inject)了ChangeDetectorRef 我已经逐步完成了代码,它肯定被调用了,但似乎我在组件和测试中得到了不同的 Chang
我将从以下概念开始这个问题:我在 StackOverflow 上看到了一个类似的问题,但该问题只回答了差异。 我想问的是我应该根据情况使用什么以及一种或另一种方法可能有什么缺点。 我知道 detect
说, - 有一个父组件 A 和一个子组件 B。 在组件B上设置OnPush。 有一刻,B 的一个不是输入绑定(bind)属性的属性发生变化,我想检测该变化并相应地更新 View 。 根据我的理解,应该
我正在复制 Angular 文档的一些示例以提高我对 Angular 单元测试的理解,但当我无法弄清楚发生了什么时,我最终进入了一个简单的测试用例。 这是我的 app.component.ts 文件,
我正在使用 Angular Meteor 2 创建一个简单的 UI。 1) 我有一个顶部导航栏组件,它有一个“注销”按钮。 2) 单击“注销”按钮时,它会重定向到“登录”。 3) 然后我在控制台中看到
我在测试中遇到 cdr.detectChanges() 问题。调用时发生错误,我没有任何信息,只是收到此错误: ZoneAwareError@webpack:///~/zone.js/dist/zon
我在 jasmine 中有以下代码: it('should pass on writing secondvalue in the input', async(() => { con
在 Angular 区域之外工作时,有两种方法可以检测变化 - 通过使用 NgZone.run 或使用 ChangeDetectorRef.detectChanges 方法重新进入区域。 NgZone
我的任务是为使用 Angular 开发的聊天应用程序编写测试。下面是我目前正在为其编写测试的 Angular 模板代码片段: check settin
阅读 How to use RxJs distinctUntilChanged?和 this ,似乎 distinctUntilChanged 将输出流更改为仅提供不同的连续值。 我的意思是,如果相同
第一个例子 我有以下测试: import { async, ComponentFixture, TestBed } from '@angular/core/testing'; import { Com
ChangeDetectorRef.markForCheck()有什么区别和 ChangeDetectorRef.detectChanges() ? 我只有found information on S
所以我的应用程序一直给我这个错误: extensions::uncaught_exception_handler:8 Error in event handler for runtime.onMess
我正在阅读 this文章中包含有关何时使用的部分 markForChange() . 在他的例子中,他有以下组件: @Component({ selector: 'cart-badge', t
我对 context.SaveChanges 是否会自动调用 DetectChanges 感到困惑。大多数有关 Entity Framework 的书籍和博客都说会。但我的简单代码片段。看起来 Sav
我正在用 Jasmine 和 Karma 学习单元测试。我的测试用例正在通过,但我不明白一件事。这是我的 typescript : // array list of objects where eac
我是一名优秀的程序员,十分优秀!