gpt4 book ai didi

javascript - 为了更好地进行单元测试,静态类型 javascript 的示例是什么?

转载 作者:行者123 更新时间:2023-11-28 07:41:54 24 4
gpt4 key购买 nike

我是测试新手,但最近我一直在尝试使用 angularJS 和 Jasmine。

随着 ES6 的出现,新的框架/语言也随之而来,例如:atScript 和 google Angular-dart。两者现在都支持可选类型 javascript 并且他们声称它变得更容易测试?

问题:1. 作为测试新手,有人可以给我一个实际的示例/用例来说明静态类型的 javascript 如何更好地进行单元测试。此外,还有一个普通 javascript 单元测试无法实现的示例?

最后,如果这不是 stackoverflow 问题,我们可以将其移动到适当的 stack 子域吗?

最佳答案

基于类型的断言是可能的。例如:

is(value : Dynamic, type : Dynamic, ?msg : String , ?pos : PosInfos)

Asserts successfully when the 'value' parameter is of the of the passed type 'type'.

raises(method:Void -> Void, ?type:Class<Dynamic>, ?msgNotThrown : String , ?msgWrongType : String, ?pos : PosInfos)

It is used to test an application that under certain circumstances must react throwing an error. This assert guarantees that the error is of the correct type (or Dynamic if none is specified).

这段代码:

enum Color { R, G, B }

function f1(x: Color | string) {
if (typeof x === "number") {
var y = x;
var y: Color;
}
else {
var z = x;
var z: string;
}
}

function f2(x: Color | string | string[]) {
if (typeof x === "object") {
var y = x;
var y: string[];
}
if (typeof x === "number") {
var z = x;
var z: Color;
}
else {
var w = x;
var w: string | string[];
}
if (typeof x === "string") {
var a = x;
var a: string;
}
else {
var b = x;
var b: Color | string[];
}
}

需要垫片来实现以下目的:

  • 枚举
  • 类型提示 ( x: Color )
  • 联合类型 ( | )

和这段代码:

class A {
propA: number;
}

class B {
propB: number;
}

class C extends A {
propC: number;
}

declare function isB(p1): p1 is B;
declare function isC(p1): p1 is C;
declare function retC(x): C;

declare function funA<T>(p1: (p1) => T): T;
declare function funB<T>(p1: (p1) => T, p2: any): p2 is T;
declare function funC<T>(p1: (p1) => p1 is T): T;
declare function funD<T>(p1: (p1) => p1 is T, p2: any): p2 is T;
declare function funE<T, U>(p1: (p1) => p1 is T, p2: U): T;

let a: A;
let test1: boolean = funA(isB);

if (funB(retC, a)) {
a.propC;
}
let test2: B = funC(isB);
if (funD(isC, a)) {
a.propC;
}
let test3: B = funE(isB, 1);

需要垫片来实现以下目的:

  • 用户定义的类型保护 ( p1 is B )
  • 返回值的类型转换 ( funA<T>(p1: (p1) => T): T )

引用文献

关于javascript - 为了更好地进行单元测试,静态类型 javascript 的示例是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27916136/

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