gpt4 book ai didi

javascript - 使用 Jasmine 测试 TypeScript 生成的类

转载 作者:行者123 更新时间:2023-11-30 14:20:36 25 4
gpt4 key购买 nike

正如标题所说,我想测试我使用 Jasmine 编写的 TypeScript 类(至少我假设我不能直接测试 .ts 文件?)。我想原因可能是 TypeScript 编译 .js 的方式文件。

所以当我运行 jasmine spec/movieSpec.js ,我收到以下错误:

Suite error: Movie
Message:
TypeError: Movie is not a constructor
Stack:
at <Jasmine>
at Suite.<anonymous> (/Users/user/Library/Mobile Documents/com~apple~CloudDocs/Coding/TypeScript/mediaparser/spec/movieSpec.js:4:15)
at <Jasmine>
at Object.<anonymous> (/Users/user/Library/Mobile Documents/com~apple~CloudDocs/Coding/TypeScript/mediaparser/spec/movieSpec.js:3:1)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
No specs found
Finished in 0.004 seconds
Randomized with seed 40039 (jasmine --random=true --seed=40039)

这是我的其他文件:

src/movie.ts

export class Movie {
private name: string;

constructor(name: string) {
this.name = name.replace(".mkv", "");
}
}

dist/movie.js(生成)

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
class Movie {
constructor(name) {
this.name = name.replace(".mkv", "");
}
}
exports.Movie = Movie;

spec/movieSpec.js

const Movie = require('../dist/movie');

describe("Movie", function() {
let movie = new Movie("aMovie.mkv");

it("removes the file extension", function() {
expect(movie.name).toEqual("aMovie")
});
});

package.json

{
"dependencies": {
"@types/jasmine": "^2.8.9",
"ts-node": "^7.0.1"
}
}

更新我已经更改了 targettsconfig.json"ES2016" ,这导致 movie.js 略有不同.我已经相应地更新了代码。不幸的是,错误仍然存​​在。

最佳答案

在您的 spec/movieSpec.js 中,尝试将 require 语句更改为:

const Movie = require('../dist/movie').Movie;

我认为您的 require 语句不会返回实际的 Movie 类。您还可以通过检查 Movie const 的实际值来检查这一点

关于javascript - 使用 Jasmine 测试 TypeScript 生成的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52800741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com