Мой тестовый файл Javascript "buildButtons.js"
let viewButtonList = [
{ buttonLink: "about", buttonLabel: "ABOUT" },
{ buttonLink: "contact", buttonLabel: "CONTACT" },
{ buttonLink: "prodcucts", buttonLabel: "PRODUCTS" },
{ buttonLink: "don't include", buttonLabel: "DON'T INCLUDE" }
]
let buttonList = []
let buildButtons = true
export function buildButtonList() {
for (let item of viewButtonList) {
if (buildButtons) {
buttonList.push(item)
}
}
return buttonList.filter(item => item.buttonLink !== "don't include")
}
А вот мой тестовый файл junit для "buildButtons.js"
import { buildButtonList } from "@/common/test.js"
let viewButtonList = [
{ buttonLabel: "ABOUT", buttonLink: "about" },
{ buttonLabel: "CONTACT", buttonLink: "contact" },
{ buttonLabel: "PRODUCTS", buttonLink: "prodcucts" },
{ buttonLabel: "DON'T INCLUDE", buttonLink: "don't include" }
]
let mockButtonList = [
{ buttonLabel: "ABOUT", buttonLink: "about" },
{ buttonLabel: "CONTACT", buttonLink: "contact" },
{ buttonLabel: "PRODUCTS", buttonLink: "prodcucts" }
]
let buttonList = []
let buildButtons = true
describe("Test buildButtonList function", () => {
it("Should call the function 'buildButtonList'", () => {
expect(buildButtonList()).toEqual(mockButtonList)
})
})
А вот результат покрытия кода моего теста.
результат тестового покрытия для buildButtons
Кто-нибудь, пожалуйста, предложите получить 100% охват кода при тестировании этого кода в тестовых примерах junit. Я пытался, но не смог охватить строку, где условие if внутри цикла for.