第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Golang如何在lambda集成測試或單元測試中模擬aws sns

Golang如何在lambda集成測試或單元測試中模擬aws sns

Go
慕虎7371278 2022-10-24 15:26:53
我想本地測試 lambda 函數(shù)調(diào)用,而不是使用 aws sns 服務。func Handler(request events.APIGatewayProxyRequest) (events.APIGatewayProxyResponse, error){    ...do some logic and db opeations.    err := db.Create(something)    if err != nil {       msg := "something error."       target := "sns:arn"       // do sns notification       sess := session.Must(session.NewSession())       svc := sns.New(sess,&cfg)       err = PublishNotification(svc, msg, target)    }}func PublishNotification(svc *sns.SNS, message string, target string) error {      params := sns.PublishInput{                Message:   &message,                Subject:   &subject,                TargetArn: &target,}      req, _ := svc.PublishRequest(&params)      err := req.Send()      if err != nil {         return err}      return nil}func main(){    lambda.Start(Handler)}現(xiàn)在一切正常。我想對這個 lambda 處理程序進行單元測試或集成測試。func TestLabmdaWithSns(t *testing.T) {        tests := []struct {        request events.APIGatewayProxyRequest}{    request: events.APIGatewayProxyRequest{Body:"something"} }  for _, test := range tests {    response, err := Handler(test.request)    // assert something}}而且我不想在測試時發(fā)送 sns 通知。我應該如何模擬這個 svc 或 PublishNotification 函數(shù)在本地測試時不向 sns 發(fā)布消息?
查看完整描述

1 回答

?
小怪獸愛吃肉

TA貢獻1852條經(jīng)驗 獲得超1個贊

您應該在 PublishNotification 中使用接口 snsiface.SNSAPI 而不是 *sns.SNS。然后,您可以將 snsiface.SNSAPI 的模擬實現(xiàn)注入單元測試,如下所述:https ://docs.aws.amazon.com/sdk-for-go/api/service/sns/snsiface/


查看完整回答
反對 回復 2022-10-24
  • 1 回答
  • 0 關(guān)注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號