我有一个UITabBarController,显示四个选项.到目前为止,这些都运行良好.
我的问题是标签栏只有在IOS模拟器中测试4英寸视网膜显示设备时才会响应.标签栏响应的所有其他设备,我可以选择其他视图.
我没有iPhone 5来测试它所以我不知道这是模拟器的故障还是Apple已经改变了新硬件的标签栏等的工作方式或使其更严格而且我写了错误的代码首先.
我需要测试一些代码,这些代码在分配了 URL 然后单击的文档上创建一个元素。
我正在使用杰斯特。
const link = document.createElement('a')
Run Code Online (Sandbox Code Playgroud)
我放弃了尝试模拟文档,因为我看不到一种简单的方法来做到这一点,尽管模拟点击会很好。
我需要知道createElement
发生了什么,所以我决定创建一个间谍:
jest.spyOn(document, 'createElement')
Run Code Online (Sandbox Code Playgroud)
由于某种原因,间谍破坏了测试,我得到了与尝试模拟文档时相同的错误:
const link = document.createElement('a')
Run Code Online (Sandbox Code Playgroud)
下面的代码document.createElement
是:
link.href = url
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我正在尝试测试显示Google Map的Vue组件
google include脚本元素位于父组件中的某处,而我要测试的组件是全局引用的:
const googleInstance = window.google
Run Code Online (Sandbox Code Playgroud)
当我看到它是全球性的时,我的警钟响了,但它的代码已经给我了,我需要提高覆盖率!
组件中的代码在此处获取实例:
this.map = new googleInstance.maps.Map(mapElement, this.options)
Run Code Online (Sandbox Code Playgroud)
我开始出现许多错误:
const googleInstance = window.google
Run Code Online (Sandbox Code Playgroud)
浅安装包装器时,我尝试将googleInstance和google添加到模拟参数
const wrapper = shallowMount(Map, {
mocks: {
google: {
maps: () => {}
}
}
})
Run Code Online (Sandbox Code Playgroud)
都不起作用,我得到相同的响应:
this.map = new googleInstance.maps.Map(mapElement, this.options)
Run Code Online (Sandbox Code Playgroud)
我试过了:
global.google = {
maps: () => {}
}
Run Code Online (Sandbox Code Playgroud)
那也不起作用
这是我要测试的map组件的简化版本:
<template>
<div>
<div refs="mapLayer" :id="mapName" class="mapLayer" />
</div>
</template>
<script>
const googleGlobal = window.google
export default {
name: 'Map',
props: {
name: {
type: String,
required: …
Run Code Online (Sandbox Code Playgroud) go-lint 建议如下:
method CreateStaticCssPath should be CreateStaticCSSPath
Run Code Online (Sandbox Code Playgroud)
linter 是否正确,如果正确,为什么?
它允许以前的方法:
CreateStaticJsPath
Run Code Online (Sandbox Code Playgroud)