我被要求測驗以下代碼,但對此一無所知。
import AWS from 'aws-sdk';
import db from './db';
async function uploadUserInfo(userID: number) {
const user = db.findByPk(userID);
if(!user) throw new Error('User not Found')
const S3 = new AWS.S3();
await S3.putObject({
Bucket: 'users',
Key:userID,
Body: JSON.stringify(user.get())
})
}
據我了解的代碼,它是一個異步函式,用于上傳用戶資訊,驗證它,并使用 AWS 類的新實體將 userId 放入資料庫。
uj5u.com熱心網友回復:
如所寫,該函式不會運行,因為它似乎有一個未宣告的變數 ( order)。因此,您可能可以對其進行測驗并將其作為“損壞”回傳給開發人員。
假設您的測驗環境知道資料庫內容,并且 AWS 憑證是正確的(并且可能不是實時/生產實體),它是可測驗的。如果這是真的,那么您可以提供已知的用戶 ID 值并檢查 AWS 存盤桶是否接收到資料。
該函式沒有很好地實作,因為它的依賴項(db 和 AWS)是不可注入的,因此它們不能輕易地用模擬實作代替以進行測驗。
一些測驗工具可能允許您攔截模塊加載,以便您可以提供模擬資料庫和 AWS 實施,這將允許您根據 userID 引數檢查相關呼叫是否使用正確的資料。
如果您有能力修改函式以使其更具可測驗性,那么如果您添加 db 和 AWS 實體作為引數,那么您可以提供模擬,并使用它們來驗證內部實作。
uj5u.com熱心網友回復:
您可能需要通過輸入不同的值來測驗它UserID。由于我假設沒有給出其他代碼部分,因此您只需要使用不同的輸入值對其進行測驗,并嘗試使用錯誤處理
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/475376.html
標籤:javascript 节点.js 打字稿 测试
