Ошибка подтверждения запускает функцию - PullRequest
0 голосов
/ 18 декабря 2018

Могу ли я вызвать функцию, когда утверждение не удается?

Например,

assert.True(t, condition) // invoke a function such as printing a map

Обновление: на основании предложения я написал небольшой пример.Но, похоже, не работает.

assert.go

package main                                                                     

import _ "fmt"                                                                   

func compute() bool {                                                            
  return false                                                                   
}                                                                                

assert_test.go

package main                                                                     

import (                                                                         
  "fmt"                                                                          
  "github.com/stretchr/testify/assert"                                           
  "testing"                                                                      
)                                                                                

func pMap() {                                                                    
  amap := map[int]string{                                                        
    1: "hello1",                                                                 
    2: "hello2",                                                                 
  }                                                                              
  for i, _ := range amap {                                                       
    fmt.Println("map = ", i)                                                     
  }                                                                              
}                                                                                

func TestCompute(t *testing.T) {                                                 
  assert.True(t, compute(), pMap)                                                
} 

$ go test

--- FAIL: TestCompute (0.00s)
    assert_test.go:20: 
            Error Trace:    assert_test.go:20
            Error:          Should be true
            Test:           TestCompute
            Messages:       0x631a30
FAIL
exit status 1

1 Ответ

0 голосов
/ 18 декабря 2018

Согласно godoc, assert.True возвращает bool, так что вы можете обернуть его в условное выражение.https://godoc.org/github.com/stretchr/testify/assert#True

passed := assert.True(t, compute()) // X will be a boolean true or false if the test passed.  

Вы можете использовать это для печати карт / как угодно:

if  passed {
     pMap()
} else {
     // test failed
}
...