玩笑:传递给构造函数的模拟依赖项
我一直在尝试模拟通过构造函数传入的类,到目前为止,我所遇到的所有示例都已经初始化了构造函数内部的依赖关系。据我了解,玩笑用其重写的构造函数替换了此类依赖关系,但由于我自己传递了依赖关系,因此在初始化UnderTest
时需要一个可传递的实例。
为了理想的价格,我理想地寻找类似于Mockito的行为,类似的东西。
const mockedDependency = ??? const underTest = new UnderTest(mockedDependency) ... Proceed to write tests for underTest
这是我要测试的代码。请假设
MockedDependency
有其自己的依赖项,也将其传递给构造函数。
export default class UnderTest { private mockedDependency : MockedDependency constructor(mockedDependency: MockedDependency) { this.mockedDependency = mockedDependency } public methodUnderTest(parameter: string) { const mockedResult = this.mockedDependency.returnSomething(parameter) return this.doSomethingElse(mockedResult) } public methodUnderTest2(parameter1: string, parameter2: string) { const mockedResult = this.mockedDependency.returnSomething2(parameter1, parameter2) return this.doSomethingElse(mockedResult) } private doSomethingElse(mockedResult: string) { return mockedResult } }
您将如何进行单元测试
UnderTest
类?奖励点是一种可以在每次测试中或通过输入设置mockedDependency
方法结果的方法。
编辑:
对于那些偶然发现相同问题的人,可能的解决方案:可以将变量强制转换为所需对象,并像这样重写方法:
const mockedDependency = { returnSomething(parameter: string) { return parameter } } as MockedDependency const underTest = new UnderTest(mockedDependency)
它远非完美,但适用于更简单的情况。
提前感谢!
我一直在尝试模拟通过构造函数传入的类,到目前为止,我所遇到的所有示例都已经初始化了构造函数内部的依赖关系。以我的理解开玩笑...
回答如下:这里是解决方法:
玩笑:传递给构造函数的模拟依赖项
我一直在尝试模拟通过构造函数传入的类,到目前为止,我所遇到的所有示例都已经初始化了构造函数内部的依赖关系。据我了解,玩笑用其重写的构造函数替换了此类依赖关系,但由于我自己传递了依赖关系,因此在初始化UnderTest
时需要一个可传递的实例。
为了理想的价格,我理想地寻找类似于Mockito的行为,类似的东西。
const mockedDependency = ??? const underTest = new UnderTest(mockedDependency) ... Proceed to write tests for underTest
这是我要测试的代码。请假设
MockedDependency
有其自己的依赖项,也将其传递给构造函数。
export default class UnderTest { private mockedDependency : MockedDependency constructor(mockedDependency: MockedDependency) { this.mockedDependency = mockedDependency } public methodUnderTest(parameter: string) { const mockedResult = this.mockedDependency.returnSomething(parameter) return this.doSomethingElse(mockedResult) } public methodUnderTest2(parameter1: string, parameter2: string) { const mockedResult = this.mockedDependency.returnSomething2(parameter1, parameter2) return this.doSomethingElse(mockedResult) } private doSomethingElse(mockedResult: string) { return mockedResult } }
您将如何进行单元测试
UnderTest
类?奖励点是一种可以在每次测试中或通过输入设置mockedDependency
方法结果的方法。
编辑:
对于那些偶然发现相同问题的人,可能的解决方案:可以将变量强制转换为所需对象,并像这样重写方法:
const mockedDependency = { returnSomething(parameter: string) { return parameter } } as MockedDependency const underTest = new UnderTest(mockedDependency)
它远非完美,但适用于更简单的情况。
提前感谢!
我一直在尝试模拟通过构造函数传入的类,到目前为止,我所遇到的所有示例都已经初始化了构造函数内部的依赖关系。以我的理解开玩笑...
回答如下:这里是解决方法: