MST

星途 面试题库

面试题:Go并发编程中如何对一个简单的并发函数进行单元测试

假设你有一个简单的Go并发函数,它接收两个整数参数,在一个goroutine中计算它们的和并通过channel返回结果。请编写一个单元测试来验证这个函数的正确性,要求使用Go标准库中的testing包。
23.8万 热度难度
编程语言Go

知识考点

AI 面试

面试题答案

一键面试
package main

import (
    "testing"
)

func sum(a, b int, result chan<- int) {
    result <- a + b
    close(result)
}

func TestSum(t *testing.T) {
    result := make(chan int)
    go sum(2, 3, result)
    res := <-result
    if res != 5 {
        t.Errorf("Expected 5, got %d", res)
    }
}