我有一个静态方法的类,我想在Jasmine中测试.我知道静态方法不能在类的实例上调用.所以除了找不到spyOn的方法之外,我的测试没有通过,但是如何用Jasmine在类中测试静态方法呢?
谢谢!
class Foo {
static foobar (a, b) {
return a * b
}
}
Run Code Online (Sandbox Code Playgroud)
茉莉花测试
it ('should test a static method', () => {
let foo = new Foo()
spyOn(foo, 'foobar')
foo.foobar(2,3)
expect(foo.foobar).toBe(6)
})
Run Code Online (Sandbox Code Playgroud) 我对使用 Yarn Workspaces 和设置 Monorepo 还比较陌生,所以如果有人回答了这个问题,请原谅我。我不相信我已经找到了关于使用 Yarn Workspaces 设置 Monorepo 是否可行的明确答案。
我想知道是否可以在不同的包中使用两个不同版本的依赖项(在我的情况下是 TypeScript)以及如何做到这一点。
我的目标是在包 A 中锁定一个 TypeScript (3.4.5) 版本,并将根package.json
版本 (3.5.0) 的 TypeScript 用于此 monorepo 中的所有其他包。
这是文件夹结构。理想情况下,PackageA 将使用 3.4.5,PackageB/PackageC 将使用根中定义的任何版本package.json
|-- packages
|-- packageA
|-- packageB
|-- packageC
|-- package.json
Run Code Online (Sandbox Code Playgroud)
这是我迄今为止尝试过的:
我尝试nohoist
在 webpack 配置中添加我的工作区选项,但我不相信包 A 使用的是 TypeScript 3.4.5,因为我没有得到预期的结果。当我将根package.json
TypeScript 版本要求更改为 3.4.5 时,即当我得到正确的结果时,如果我可以继续为所有其他包使用最新的 TS 而为包 A 保留较低版本,那将是最好的情况。
我还尝试package.json
在 PackageA 文件夹中添加一个,它定义"typescript": "3.4.5"
为devDependency
. Yarn 在 PackageA 文件夹中安装了正确的版本,但它似乎没有使用它。
我也很确定 Yarnresolutions
不是这种情况的正确工具,因为我的包在我的package.json …