我有一个角度应用程序,其中有一个<a>
标签,看起来像这样。
<a class="add-new-item" href="javascript:void(0);" >Add Item</a>
点击此链接后,该应用程序将运行一个jquery函数,该函数会在代码中动态添加一些html。
$("body").on("click", ".add-new-item", function(e) {
e.preventDefault();
var parent = $(this).parent();
parent.find(".item-wrapper").append(
$(".menu-item", parent)
.eq(0)
.clone(true)
);
});
我写了以下测试。
it("add new item link should add a new item", () => {
const elementDe: DebugElement = fixture.debugElement;
const addNewDe = elementDe.query(By.css(".add-new-item"));
const newWrapperItem = elementDe.query(By.css(".item-wrapper"));
expect(newWrapperItem.childNodes.length).toEqual(1);
addNewDe.nativeElement.click();
expect(newWrapperItem.childNodes.length).toEqual(2);
});
但这不会调用上面提到的jquery click event
,从而导致Expected 1 to equal 2.
错误。现在我不确定什么是正确的方法。