我正在使用默认测试设置(Jasmine + Karma)运行 Angular 5 应用程序。
假设有一个名为 Parent 的组件,它有一个在子组件上执行方法的方法。
父组件.ts
@Component({
selector: 'parent',
...
export class ParentComponent implements {
@ViewChild(ChildComponent) childComponent: ChildComponent;
executeChildComponentMethod() {
this.childComponent.methodToTest();
}
}
Run Code Online (Sandbox Code Playgroud)
父组件规格
import { ParentComponent } from './parent.component'
describe('ParentComponent' () => {
let component: ParentComponent;
let fixture: ComponentFixture<ParentComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ParentComponent],
schemas: [NO_ERRORS_SCHEMA]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ParentComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should trigger executeChildComponentMethod', () => {
component.executeChildComponentMethod()
});
});
Run Code Online (Sandbox Code Playgroud)
这会导致测试抛出错误,提示无法执行未定义的 methodToTest.. 这意味着子组件未实例化。
尝试过在 it …
我正在研究一个基本的Rails应用程序(Rails版本4.1),我想在其中包含一个静态页面.我有一个具有以下目录结构的静态页面:
| | - index.html | - css文件夹| - (某些css文件)| - js文件夹| - (某些js文件)| - images文件夹| - (某些图像)
如何将其包含在我的应用程序中?我打算把它作为我的主页顺便说一下.
我已经尝试在控制器中使用'layout'关键字,将html文件包含在'app/views/layout'目录中.但是,我最多能够呈现'index.html'文件,但它错过任何样式,即呈现为纯文本.通过使用HighVoltage gem,我已经能够获得相同的结果.
我有一个应用程序,我想将读取、写入操作移至实用程序文件,即远离组件。我正在尝试这样做。
组件.js
import { saveData } from './utils/fileSave.js';
class App extends Component {
saveContent() {
saveData(this.setState, data);
}
...
}
Run Code Online (Sandbox Code Playgroud)
utils/fileSave.js
const saveData = (setState, data) => {
setState(data);
}
Run Code Online (Sandbox Code Playgroud)
但是,这会导致错误,显示“TypeError:无法读取未定义的属性‘updater’”
不确定这是否是正确的方法。