Angular 如何在角度4+;上测试输入的标签;?

Angular 如何在角度4+;上测试输入的标签;?,angular,typescript,unit-testing,jasmine,karma-jasmine,Angular,Typescript,Unit Testing,Jasmine,Karma Jasmine,我有一个角度分量,形状如下: <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>

我有一个角度分量,形状如下:

<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>

点击我
点击我2

我需要一个单元测试来验证输入[id=Name]是否有一个带有文本“Click Name”的标签。如何使用jasmin和karma在angular上实现单元测试?

获取元素并测试它

it('should check label name', () => {
    let labelName = fixture.debugElement.query(By.css("label[for=Name]"));
    expect(labelName).toBe("Click Me");
})
问题是如何与该元素交互,而不是如何测试它


祝你好运

您发布的代码有点混乱。 下面是测试标签的可能解决方案,无论输入与否

导入:

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");
从“@angular/core/testing”导入{ComponentFixture,TestBed}

从“@angular/platform browser”导入{By}”

代码:

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");
let fixture:ComponentFixture=TestBed.createComponent(您的组件);
const queryValue=fixture.debugElement.query(By.css(“#您的标签id”);
expect(queryValue.toBeTruthy();
expect(queryValue.nativeElement).toBeTruthy();
expect(queryValue.nativeElement.outerText).toContain(“标签中需要的文本”);