【发布时间】:2020-04-10 13:52:07
【问题描述】:
使用茶匙和茉莉花来测试一些 JS。 js 将东西放在“窗口”中。
有没有办法为每个规范完全重新加载页面,以便重新初始化这个“窗口”。
【问题讨论】:
标签: javascript ruby-on-rails jasmine teaspoon
使用茶匙和茉莉花来测试一些 JS。 js 将东西放在“窗口”中。
有没有办法为每个规范完全重新加载页面,以便重新初始化这个“窗口”。
【问题讨论】:
标签: javascript ruby-on-rails jasmine teaspoon
我不确定重新加载浏览器是否是个好主意。您可能会遇到Some of your tests did a full page reload jasmine 错误,它可能会使您的测试变慢。我要做的是利用beforeEach、beforeAll、afterEach、afterAll 钩子。
beforeEach 在 describe 块中的每个 it 测试之前运行一次,beforeAll 在 describe 块内的所有 it 测试之前运行一次。
您可以做的是利用这些钩子,适当地在窗口中添加和删除东西,并在每次测试(可能是afterEach 或afterAll)钩子后进行清理。
【讨论】:
beforeAll 或 beforeEach 的某处放置一个名为 oldWindow = window; 的变量的句柄,其中 oldWindow 将是未添加属性的 window。然后在添加属性后,您可以使用window = oldWindow; 删除它们。也许你必须以Object.assign 的方式来做,但是像这样。