【发布时间】:2021-01-16 13:08:03
【问题描述】:
我尝试编写包装在类中的测试用例,以便调用方法将执行测试用例。但是由于依赖因素,url 值将在 beforeAll/beforeEach 块内初始化。在那种情况下,我没有得到 url 值,这会导致测试用例执行失败。我也无法将 url 作为参数传递(url 只会在 beforeAll 块中初始化)。是否有任何替代方案可以解决此问题?
sampleTest.ts
export interface TestCaseArgumentsType {
baseUrl: string;
url: string;
}
export class Sample {
set args(value: TestCaseArgumentsType) {
this.arguments = value;
}
private arguments!: TestCaseArgumentsType;
sampleTestFunction() {
console.log(this.arguments.url); // **expected**: sampleUrl **actual**: cannot set property url of undefined
it('to check the before each execution effects in the test case', () => {
console.log(this.arguments.url); // sampleUrl
});
}
}
sampleTestSuite.test.ts
import { Sample, TestCaseArgumentsType } from './sampleTest';
describe('User Route', () => {
let sample = new Sample();
// Test suite
describe('GET Request', () => {
// Preparing Test Suite
beforeAll(async () => {
sample.args = <TestCaseArgumentsType>{ url: `sampleUrl` };
}, 20000);
// Executing
sample.sampleTestFunction();
});
});
【问题讨论】:
-
我执行了你的代码,它运行良好。
-
@slideshowp2 你得到了测试用例中的 url 吗?我遇到了一个错误。
-
我得到了
sampleUrlforconsole.log(this.arguments.url)并且测试通过了 -
你是如何运行这段代码的。通过安装 jest?
-
与
test-jest和jest
标签: javascript node.js typescript jestjs