csjiabin's blog csjiabin's blog
首页
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
  • 学习笔记

    • 《面向Node.js开发者的Go》
更多
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

csjiabin

前端界的小菜鸟
首页
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
  • 学习笔记

    • 《面向Node.js开发者的Go》
更多
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • comments
  • printing
  • logging
  • variables
  • interpolation
  • types
  • type check
  • if/else
  • for
  • while
  • switch
  • arrays
  • uint8 arrays
  • array iteration
  • array sorting
  • buffers
  • maps
  • objects
  • functions
  • default values
  • destructuring
  • spread operator
  • rest operator
  • swapping
  • classes
  • generators
  • datetime
  • timeout
  • interval
  • IIFE
  • files
  • json
  • big numbers
  • promises
  • async await
  • streams
  • event emitter
  • errors
  • try/catch
  • exceptions
  • regex
  • exec
  • tcp server
  • udp server
  • http server
  • url parse
  • gzip
  • dns
  • crypto
  • env vars
  • cli args
  • cli flags
  • stdout
  • stderr
  • stdin
  • modules
  • stack trace
  • databases
  • testing
    • benchmarking
    • documentation
    • 《面向Nodejs开发者的Go》
    miguelmota
    2022-09-29
    目录

    testing

    # Node.js

    const test = require("tape");
    
    test((t) => {
      const tt = [
        { a: 1, b: 1, ret: 2 },
        { a: 2, b: 3, ret: 5 },
        { a: 5, b: 5, ret: 10 },
      ];
    
      t.plan(tt.length);
    
      tt.forEach((tt) => {
        t.equal(sum(tt.a, tt.b), tt.ret);
      });
    });
    
    function sum(a, b) {
      return a + b;
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19

    Output

    $ node examples/example_test.js
    TAP version 13
    # (anonymous)
    ok 1 should be equal
    ok 2 should be equal
    ok 3 should be equal
    
    1..3
    # tests 3
    # pass  3
    
    # ok
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12

    # Go

    package example
    
    import (
    	"fmt"
    	"testing"
    )
    
    func TestSum(t *testing.T) {
    	for _, tt := range []struct {
    		a   int
    		b   int
    		ret int
    	}{
    		{1, 1, 2},
    		{2, 3, 5},
    		{5, 5, 10},
    	} {
    		t.Run(fmt.Sprintf("(%v + %v)", tt.a, tt.b), func(t *testing.T) {
    			ret := sum(tt.a, tt.b)
    			if ret != tt.ret {
    				t.Errorf("want %v, got %v", tt.ret, ret)
    			}
    		})
    	}
    }
    
    func sum(a, b int) int {
    	return a + b
    }
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29

    Output

    $ go test -v examples/example_test.go
    === RUN   TestSum
    === RUN   TestSum/(1_+_1)
    === RUN   TestSum/(2_+_3)
    === RUN   TestSum/(5_+_5)
    --- PASS: TestSum (0.00s)
        --- PASS: TestSum/(1_+_1) (0.00s)
        --- PASS: TestSum/(2_+_3) (0.00s)
        --- PASS: TestSum/(5_+_5) (0.00s)
    PASS
    ok      command-line-arguments  0.008s
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    ⬆ back to top

    编辑 (opens new window)
    #Go#Node.js
    上次更新: 2022/09/30, 11:34:22
    databases
    benchmarking

    ← databases benchmarking→

    最近更新
    01
    咖啡知识
    10-13
    02
    documentation
    09-29
    03
    benchmarking
    09-29
    更多文章>
    Theme by Vdoing | Copyright © 2018-2022 csjiabin | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式