我有一个像这样的角组件:
<form>
<label for="Name">Click me</label>
<input type="text" id="Name" name="Name" />
<label for="Name2">Click me 2</label>
<input type="text" id="Name2" name="Name" />
</form>
我需要进行单元测试,以验证输入[id = Name]是否具有带有文本的标签:“单击名称”。如何使用jasmin和karma在angular上执行该单元测试?
答案 0 :(得分:0)
获取元素并进行测试。
it('should check label name', () => {
let labelName = fixture.debugElement.query(By.css("label[for=Name]"));
expect(labelName).toBe("Click Me");
})
问题是如何与该元素进行交互,而不是如何对其进行测试。
祝你好运!
答案 1 :(得分:0)
您发布的代码有些混乱。 下面是一个可能的测试标签的解决方案,无论是否输入。
导入:
从'@ angular / core / testing'导入{ComponentFixture,TestBed};
从'@ angular / platform-browser'导入{通过};
代码:
let fixture: ComponentFixture<YourComponent> = TestBed.createComponent(YourComponent);
const queryValue = fixture.debugElement.query(By.css('#your-label-id'));
expect(queryValue).toBeTruthy();
expect(queryValue.nativeElement).toBeTruthy();
expect(queryValue.nativeElement.outerText).toContain("Text expected in the label");