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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

為什么 mock 對(duì)象的 getter() 返回 null?

為什么 mock 對(duì)象的 getter() 返回 null?

白衣非少年 2023-05-24 17:42:18
我有一堂課ResolverChainContext:public class ResolverChainContext {  private AWSCredentialsProvider assumeRoleCredentials;}在setup()單元測(cè)試(Groovy 和 Spock)中,我用 Mock 填充上面的字段:def setup() {  def ctx = ResolverChainContext.builder().build()  ctx.setAssumeRoleCredentials(Mock(AWSCredentialsProvider.class))}接下來在我的測(cè)試用例中,我調(diào)用了一個(gè)方法getDynamoDBCredentialsV2(),我想v1Credentials從中獲取getDynamoDBCredentials()來自 Mock 對(duì)象的setup()步驟:public interface AWSCredentialsProvider {    AWSCredentials getCredentials();    void refresh();}protected AWSCredentialsProvider getDynamoDBCredentials() {    final AWSCredentialsProvider fasCredentials = resolverChainContext.getFasCredentials();    final AWSCredentialsProvider roleCredentials = resolverChainContext.getAssumeRoleCredentials();    if (null == fasCredentials || !invokerConfig.isUseCallerCredentials()) {        return roleCredentials;    } else {        return fasCredentials;    }}protected AwsCredentialsProvider getDynamoDBCredentialsV2() {    AWSCredentials v1Credentials = getDynamoDBCredentials().getCredentials();    blahblahblah;}問題是我會(huì)得到null的v1Credentials。當(dāng)我調(diào)試它時(shí),類型roleCredentials是“Mock for type AWSCredentialsProvider”。getCredentials()在調(diào)用它之后,它得到了null。這是因?yàn)槲义e(cuò)誤地使用了 Groovy 嗎?我怎樣才能使它v1Credentials成為應(yīng)該的對(duì)象?我應(yīng)該使用 Mock/Stub 嗎?
查看完整描述

1 回答

?
幕布斯6054654

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超7個(gè)贊

AWSCredentialsProvider#getCredentials它返回 null,因?yàn)槲炊x行為。

從 Spock 的基于交互的測(cè)試文檔中,當(dāng)未在模擬對(duì)象方法上定義行為時(shí),將返回其默認(rèn)值,在您的情況下,默認(rèn)Object值為null

最初,模擬對(duì)象沒有任何行為。允許調(diào)用它們的方法,但除了返回方法返回類型的默認(rèn)值(false、0 或 null)外,沒有任何效果。一個(gè)例外是 Object.equals、Object.hashCode 和 Object.toString 方法

AWSCredentialsProvider#getCredentials為了克服這個(gè)問題,您可能需要定義方法調(diào)用的行為stubbing?,如文檔中所述。


查看完整回答
反對(duì) 回復(fù) 2023-05-24
  • 1 回答
  • 0 關(guān)注
  • 234 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

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