我的Angular 2应用程序中有以下input
:
<input
id="radio-{{geo.id}}"
name="radio-geos"
type="radio"
[value]="geo.value"
[(ngModel)]="selectedGeo">
selectedGeo
绑定到public selectedGeo: string;
我正在为输入元素编写以下内容:
it('should select the US Home Region', (done) => {
// Arrange
const component = TestBed.createComponent(regionComponent);
// Act
component.detectChanges();
const usGeoRadioButton = component.debugElement.query(By.css('#radio-0'));
usGeoRadioButton.triggerEventHandler('click', null);
component.detectChanges();
const selectedGeo = component.componentInstance.selectedGeo;
// Assert
component.whenStable().then(() => {
expect(selectedGeo).toBe('US');
done();
});
});
在Karma中运行测试后,我注意到没有单击单选按钮且selectedGeo
没有更新。我的测试失败,因为selectedGeo
以未定义的形式返回。
我不确定为什么会这样,我已经对dispatchEvent
以及[(ngModel)]
如何更新进行了一些研究,但我无法弄清楚这一点。
有什么建议吗?
答案 0 :(得分:0)
您的输入标签不应该像这样格式化(没有括号和ng-model):
<input type="radio" ng-model="string" value="string" [name="string"]...>
文档链接:https://docs.angularjs.org/api/ng/input/input%5Bradio%5D