我正在尝试使用cypress来测试我构建的大型 Angular 应用程序。我的要求是我将一个期望文件加载到我的测试中,然后从这个期望文件中驱动测试。
到目前为止,我无法使用 、 的各种组合来实现它cy.readFile()
, cy.fixture()
甚至axios
无法通过 http 加载文件。
问题似乎是我不能在外面使用这些方法it()
,如果我不能这样做,这意味着我不能遍历数据来创建它。我正在尝试做类似下面的事情......这在柏树中是否可能?我错过了一些明显的东西吗?
可以说我的期望是这样的:
{
"mainPage": [1, 2, 3],
"otherPage": [4, 5, 6]
}
我希望我的代码加载它并浏览各个页面:
describe(`Test the app `, function() {
cy.readFile("path/to/expectation.json").then(function(expectation) {
Object.keys(expectation).forEach(function(pageName) {
it(`for page ${pageName}`, function() {
gotoPage(pageName);
var pageData = getDataFrompage();
expect(pageData).to.equal(expectation[pageName]);
})
})
})
})
在我看来,这似乎是一个非常明显的用例,所以我很困惑为什么它看起来如此困难:)