在一个有角项目中,我已经用玩笑有效地替代了业力/茉莉,并且测试运行得很好。...但是:
我没有删除茉莉花(量角器需要它),现在我遇到了一个问题,如果我在规格文件中使用void Main()
{
string rawWatermarkFormat = "{@Charge}; {Current Date} {Current Time}; Scan Operator: {Scan Operator's User ID}; Page: x/y";
Dictionary<string, string> keywordValues = new Dictionary<string, string>
{
["@Charge"] = "phosphoric acid",
["Current Date"] = "24.04.2019",
["Current Time"] = "14:20",
["Scan Operator's User ID"] = "123",
};
Regex.Replace(rawWatermarkFormat, @"{(?<keyword>[^}]+)}", me =>
{
if (keywordValues.TryGetValue(me.Groups["keyword"].Value, out string value))
return value;
return me.Value;
}).Dump();
}
而不是phosphoric acid; 24.04.2019 14:20; Scan Operator: 123; Page: x/y
,它将使用茉莉花间谍和不是开玩笑的(实现方式不同)。这是一个很棒的开发人员经验,我只想从单元测试中完全删除茉莉花,但是我不知道如何。
如何在编译规范文件时设置tsconfig.spec.json以排除茉莉花?
我正在使用spyOn
的{{1}}。
如果我没有提供足够的信息,请随时与我联系以获取更多信息!
这是我的jest.spyOn
文件:
jest-preset-angular
这是我的ts-jest
文件:
tsconfig.spec.json
我的玩笑配置告诉{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../out-tsc/spec",
"module": "commonjs",
"target": "es5",
"baseUrl": ""
},
"files": [
"test.ts",
"polyfills.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts"
]
}
这样使用我的tsconfig.json
文件:
{
"compileOnSave": false,
"compilerOptions": {
"importHelpers": true,
"outDir": "./dist/out-tsc",
"baseUrl": "public",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
"node_modules/@types" <-- jasmine types are in here too!
],
"lib": [
"es2016",
"dom"
],
"module": "es2015"
}
}
答案 0 :(得分:1)
Jest
基于Jasmine
和includes a "light" version ...
...如此spyOn
exists in the Jest
source code。
它已被弃用且未记录,但正如您所发现的,它仍然可以调用它。
它可能会在Jest
的未来版本中被完全删除(旧的Jasmine
件将逐渐删除)。
要帮助跟踪对spyOn
的呼叫,可以使用errorOnDeprecated
CLI选项。
像这样启动Jest
:
jest --errorOnDeprecated
...,您将在测试中调用spyOn
的任何时间看到错误记录。