We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
首先上有问题的代码段 /test/index.js 第 16 行至 51 行:
router.setMode('hash'); router.start(); let routeTimes = 0; let App = san.defineComponent({ initData() { return { routeTimes: 0 }; }, components: { 'router-link': Link }, route() { this.data.set('routeTimes', this.data.get('routeTimes') + 1); routeTimes = this.data.get('routeTimes'); }, template: '<div><router-link to="./errorrik">Click here to hash route, quickly</router-link> <b title="{{route.query.name}}">{{route.query.name}}</b></div>' }); router.add({ rule: '/synthesis/hash/:name', Component: App }); location.hash = '/synthesis/hash/erik'; setTimeout(() => { expect(routeTimes).toBe(1); expect(document.getElementById('main').getElementsByTagName('b')[0].title).toBe('erik'); detectDone(); }, 500);
根据断言的描述 hash mode, link to route,可以得知这是测试 hash mode 下 router-link 组件是否正常工作的测试用例。
hash mode, link to route
router-link
这段代码的逻辑是先创建一个组件,然后挂到路由上,然后同步更改 hash 值,再异步检测组件中的 router-link 是否被点击。从同步的 hash 变更到开始检测的延迟为 500 毫秒。 显然,如果在 500 在毫秒内进行点击的话,location.hash 会提前发生变化,于是定时器中的句柄执行后将不会得到期望的值。
然而 router-link 提示是 Click here to hash route, quickly,于是我根据提示,用高于 500ms / 次的频度迅速点击该链接,导致了单元测试失败;而等到 500ms 之后再去点击,却是(意料之中的)成功。
Click here to hash route, quickly
因此我推测这个测试用例在某种程度上是有问题的。要么是链接的提示产生了误导,要么是断言对测试项的描述有歧义,亦或测试用例本身的实现不够严谨。
P.S. 75 行的 html5 mode 的测试用例有同样的问题。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
首先上有问题的代码段 /test/index.js 第 16 行至 51 行:
根据断言的描述
hash mode, link to route
,可以得知这是测试 hash mode 下router-link
组件是否正常工作的测试用例。这段代码的逻辑是先创建一个组件,然后挂到路由上,然后同步更改 hash 值,再异步检测组件中的
router-link
是否被点击。从同步的 hash 变更到开始检测的延迟为 500 毫秒。显然,如果在 500 在毫秒内进行点击的话,location.hash 会提前发生变化,于是定时器中的句柄执行后将不会得到期望的值。
然而
router-link
提示是Click here to hash route, quickly
,于是我根据提示,用高于 500ms / 次的频度迅速点击该链接,导致了单元测试失败;而等到 500ms 之后再去点击,却是(意料之中的)成功。因此我推测这个测试用例在某种程度上是有问题的。要么是链接的提示产生了误导,要么是断言对测试项的描述有歧义,亦或测试用例本身的实现不够严谨。
P.S. 75 行的 html5 mode 的测试用例有同样的问题。
The text was updated successfully, but these errors were encountered: