您好,登錄后才能下訂單哦!
在 Jest 框架中測試依賴注入,首先需要了解依賴注入的概念。依賴注入是一種設計模式,用于降低代碼之間的耦合度,提高代碼的可維護性和可測試性。在 TypeScript 或其他支持類型的語言中,依賴注入通常通過構造函數、屬性或方法參數傳遞依賴關系。
以下是使用 Jest 測試依賴注入的示例:
npm install --save-dev jest ts-jest @types/jest
tsconfig.json
以支持 Jest:{
"compilerOptions": {
"target": "es6",
"module": "commonjs",
"outDir": "./dist",
"strict": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"skipLibCheck": true,
"moduleResolution": "node"
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}
MessageService
接口和一個實現該接口的 EmailService
類:// src/message-service.ts
export interface MessageService {
sendMessage(to: string, content: string): void;
}
// src/email-service.ts
import { MessageService } from "./message-service";
export class EmailService implements MessageService {
sendMessage(to: string, content: string) {
console.log(`Sending email to ${to}: ${content}`);
}
}
NotificationService
類:// src/notification-service.ts
import { MessageService } from "./message-service";
export class NotificationService {
constructor(private messageService: MessageService) {}
notify(to: string, content: string) {
this.messageService.sendMessage(to, content);
}
}
NotificationService
的 Jest 測試:// src/notification-service.test.ts
import { NotificationService } from "./notification-service";
import { MessageService } from "./message-service";
import { EmailService } from "./email-service";
describe("NotificationService", () => {
let notificationService: NotificationService;
let messageService: MessageService;
beforeEach(() => {
messageService = new EmailService();
notificationService = new NotificationService(messageService);
});
it("should send a message using the provided message service", () => {
const sendMessageSpy = jest.spyOn(messageService, "sendMessage");
notificationService.notify("user@example.com", "Hello!");
expect(sendMessageSpy).toHaveBeenCalledWith("user@example.com", "Hello!");
});
});
在這個示例中,我們使用 Jest 的 spyOn
方法來監視 messageService.sendMessage
方法的調用。然后,我們調用 notificationService.notify
方法并驗證 sendMessage
是否被正確調用。
要運行測試,請在 package.json
文件中添加以下腳本:
{
"scripts": {
"test": "jest"
}
}
然后運行 npm test
。這將運行 Jest 測試并顯示結果。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。