我想做一个测试不同练习的工具。一种练习是单元测试。因此,我需要测试学生所做的测试是否是好的测试。例如,学生有以下代码:
export class HelloWorld {
public static showHello(): string {
return 'Hello World!';
}
}
进行以下笑话测试:
import { HelloWorld } from '..';
describe(Hello World exercise, () => {
test('Check function is defined', () => {
expect(HelloWorld.showHello()).toBeDefined();
});
test('Empty input results in Hello World!', () => {
expect(HelloWorld.showHello()).toBe('Hello World!');
});
});
我该如何测试学生确实测试了这两项测试?我想到了
export const firstTest = test()...
然后测试firstTest是否测试正确的东西。但是缺点是您必须导出此解决方案的所有测试。
答案 0 :(得分:0)
测试需要黑盒测试,这意味着您要么需要事先知道编写了哪些测试(以及应该如何编写),要么需要查看每个测试并为每个测试编写唯一的测试。鉴于您正在尝试测试学生对测试的理解并以自动化的方式进行,我怀疑这两种选择都是可行的。
但是,您可以使用几种启发式方法。我建议结合使用这三种方法中的前三种。
正如我所说,前三个选项的组合将是最佳选择。例如,为系统提供一个公共界面,运行代码覆盖工具,并随机破坏每个学生私有实施的y区域。