javascript - ייבוא מחלקת Typescript לבדיקות Jasmine (שגיאת אינו בנאי)


אם יש לי מחלקה מוגדרת בקובץ TypeScript (DateTimeConverter.ts):

export class DateTimeConverter{
    constructor(){
    }
    //Other methods
}

ואז אני רוצה לייבא את המחלקה הזו כדי לבצע כמה בדיקות יחידה ב-Jasmine, אז בספק שלי אני מייבא אותה:

var DateTimeConverter = require('../path/to/DateTimeConverter');

למה אני לא יכול להשתמש במחלקה הזו בבדיקת היחידה שלי:

var timeConverter = new DateTimeConverter();

כאשר אני מריץ את הבדיקות שלי, Jasmine נותנת שגיאה:

TypeError: DateTimeConverter אינו קונסטרקטור

איך אני יכול לכלול את המחלקה הזו בבדיקות שלי כדי שאוכל לבדוק את הפונקציונליות שלה?

תשובה #1

אז פיצחתי את זה וחשבתי לפרסם את התשובה במקרה שמישהו אחר נתקע על זה. כשאתה מייבא את הספריה, אין לך (כנראה באופן מובן) גישה ישירה למחלקה, אלא קישור אליה:

var DateTimeConverterLib = require('../path/to/DateTimeConverter');

אתה יכול לאחר מכן ליצור מופע שלה:

var timeConverter = new DateTimeConverterLib.DateTimeConverter();

ואז קרא לכל הפונקציות עליו כפי שהיית עושה בדרך כלל:

var result = timeConverter.MyAwesomeTimeFunction();

עובד כקסם וכל הבדיקות שלי עכשיו עוברות :)

מקווה שזה יעזור למישהו