我该如何测试ES2015课程?

时间:2016-03-11 19:29:35

标签: javascript jasmine ecmascript-6

我的经验是使用静态类型语言,我必须承认,在尝试使用动态语言时,我会感到迷茫。我想避免的一件事是应用在这种情况下没有意义的概念。请假设这个类属于我的项目,我们想用Jasmine测试它:

class MyEs6Class {
    constructor(
        collaborator1 = new MyCollaborator(),
        factory = new MyFactory()) {

        this.collaborator1 = collaborator1;
        this.factory = factory;
    }

    method() {
        // Code
    }
}

我在构造函数中提供了对象的默认实例,因为这允许我在测试时模拟它们。我试图以与我使用相同的方式使用控制反转,比方说C#,但是使用该语言的动态特性来避免依赖注入容器。这两个依赖项是类所必需的,因此从结构的角度来看,我认为必须使用构造函数提供它们。

另外,我正在使用工厂的概念,因为虽然该类是“活着的”,但可能需要多次来自工厂的新对象。

从ES6类的角度来看,我知道私有和公共(https://stackoverflow.com/a/27853642/185027)之间没有区别,所以我可以通过私有方法处理工厂的逻辑,但依赖于他测试似乎错了。另一方面有一个叫做工厂的东西,因为我需要假装返回的对象看起来很奇怪,也许是在尖叫我缺乏知识。

  • 在此背景下模拟协作者的正确方法是什么?
  • 拥有工厂概念只是因为我需要模拟返回的对象,这是愚蠢吗?
  • 在Javascript / ES6中隔离被测对象的可维护性和优雅方法是什么?我可以学习任何有趣的公共代码库吗?

0 个答案:

没有答案