为了账号安全,请及时绑定邮箱和手机立即绑定

如何测试我的界面功能?

如何测试我的界面功能?

Go
一只甜甜圈 2021-08-23 16:23:46
Go 的第三天,如果这是一个新手问题,请原谅;)。我正在创建一个简单的计算器,它最终将有许多不同的任务:加法、减法、乘法等……每个任务都有两个功能:第一和第二。package mainimport (    "github.com/mytestproj/calculator")type Calc interface {    First(x int) int    Second(x int) int}func main() {    x := 16    var i Calc    a := calculator.Add{}    i = a    i.First(x)    i.Second(x)}我目前将所有内容组织为:github.com/   mytestproj/      calculator/         addition.go         addition_test.go         subtraction.go         subtraction_test.go   main/      main.go另外.go我有:package calculatortype Add struct{}func BasicAddition(x int) int {  // this won't be in the final release    return x + 2}func (h Add) First(x int) int {    x += 5    return x}func (h Add) Second(x int) int {    x += 10    return x}另外_test.go 我有:package calculatorimport "testing"func TestBasicAddition(t *testing.T) {    x := 30    if y := BasicAddition(x); y != 32 {        t.Errorf("Mine is %v", y)    }}func TestFirst(t *testing.T) {    x := 10    if y := First(x); y != 15 {        t.Errorf("First is %v", y)    }}当我运行我的测试时,我收到一个错误:# github.com/mytestproj/calculator./addition_test.go:15: undefined: FirstFAIL    github.com/mytestproj/calculator [build failed]我的问题:我如何测试“第一”?如果我完全删除 First 的测试,则测试运行良好并通过。第二个问题:这个想法是构建一个具有许多不同功能的计算器应用程序。如果有更好的方法来组织代码,请告诉我。
查看完整描述

1 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

First是一个关于 type 的方法Add。例如,


a := Add{}

a.First(x)

addition.go


package calculator


type Add struct{}


func BasicAddition(x int) int { // this won't be in the final release

    return x + 2

}


func (h Add) First(x int) int {

    x += 5

    return x

}


func (h Add) Second(x int) int {

    x += 10

    return x

}

addition_test.go


package calculator


import "testing"


func TestBasicAddition(t *testing.T) {

    x := 30

    if y := BasicAddition(x); y != 32 {

        t.Errorf("Mine is %v", y)

    }

}


func TestFirst(t *testing.T) {

    x := 10

    a := Add{}

    if y := a.First(x); y != 15 {

        t.Errorf("First is %v", y)

    }

}

输出:


$ go test -v

=== RUN TestBasicAddition

--- PASS: TestBasicAddition (0.00s)

=== RUN TestFirst

--- PASS: TestFirst (0.00s)

PASS

ok      so/calculator   0.002s

$


查看完整回答
反对 回复 2021-08-23
  • 1 回答
  • 0 关注
  • 225 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信