wuxianqiang / next-server

next服务端渲染

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pages是路由根目录 约定式路由 跳转路由有两种方式

import Link from 'next/link'
<Link href="/user">
  <a href="">用户列表</a>
</Link>

import router from 'next/router'
<Button onClick={() => router.push('/user')}>
  切换/user
</Button>

怎么使用styled-jsx

测试用例:就是一条测试规则

function add (a, b) {
  return a + b
}

测试用例

it('测试2+4=6', () => {
  assert(add(2, 3) === 6, '2=3=5')
})

测试分组(用例最好包括从正面和反面进行测试)

describe('测试ad', () => {
  it('测试2+4=6', () => {
    assert(add(2, 3) === 5, '2+3=5')
  })
  it('测试2+4=6', () => {
    assert(add(2, 3) !== %, '2+3!=5')
  })
})

断言的基本功能

function assert(condition, message) {
  if (!(condition)) {
    throw new Error(message)
  }
}

function it(message, testCase) {
  testCase()
}

jest写法

expect(add(2,4)).toBe(6)
expect(add(2,3)).not.toBe(6)

怎么使用ES6,先生成配置文件

jest --init

babel.config.js

module.exports = {
  presets: {
    [
      "@babel/preset-env",
      {
        targets: {
          node: "current"
        }
      }
    ],
    "@babel/preset-react",
    "@babel/preset-typescript"
  }
}

注意文件名称的规则,__test__规则 jsdom在nodejs里面测试出你的DOM操作

匹配器

test('测试', () => {
  document.body.innerHTML = (
    `
    <div id="parent">
      <div id="child"></div>
    </div>
    `
  )
  let parent = document.getElementById('parent')
  let child = document.getElementById('child')
  remove(child)
  // 异常了DOM元素会返回null
  expect(document.getElementById('child')).toBeNull()
})

测试异步

export const callback = (onSuccess) => {
  setTimeout(() => {
    onSuccess({code:  0})
  }, 100)
}

describe('异步测试', () => {
  it('测试callback', (done) => {
    callback((result) => {
      expect(result).toEqual({code: 0})
      done()
    })
  })
})

钩子函数

it('测试exec', () => {
  let callback = jest.fn()
  // 模拟函数,可以测试函数是否被调用,调用了几次
  expect(callback).toBeCalled()
  
})

jest模拟接口

import axios from 'axios'
jest.mock(axios)

模拟定时器

TDD测试驱动开发,先写测试用例,再开发

About

next服务端渲染


Languages

Language:JavaScript 99.6%Language:CSS 0.4%