1
2
您可以尝试调整代码以遵循 (Abstract) Factory Design 模式,在创建模拟对象的单元测试环境中可以使用不同的工厂。 |
2
4
初学者的答案是:
|
3
0
一种方法是不要像那样硬连接你的类。 使用您的示例: MyDataClass将是纯虚拟类。这将至少有2个实现,“真实”实现和模拟实现。 您的测试代码可以通过有两个构造函数来注入模拟实例,一个使用“MyDataClass”,另一个不使用。有关示例,请参见下面的代码。
现在,您可以向所需的MyWorkerClass提供MyDataClass的任何实现。如果您不提供实现,那么您的代码将返回到“真正的”实现上。 另一种技术是使用工厂模式来实例化对象。您的测试代码可以在工厂上设置一些标志,用于创建MyDataClass的实例,并让它生成一个模拟对象而不是真正的对象。我更喜欢第一种技术,因为它比我更容易使用(另外,我不必为我想测试的所有内容维护工厂类) |
Phil Gunning · 使用嵌套函数更改进行模拟测试 2 年前 |
Korr · 如何用Jest模拟组件测试中服务的功能 2 年前 |
Jordan Lee · 在另一个类中使用实例方法作为装饰器 6 年前 |
user2350138 · 为WireMock构建Java项目 6 年前 |
user8584384 · 单元测试不起作用,因为导入的文件作为输入 6 年前 |
Vino · 如何模拟Python类的对象? 6 年前 |
Enrico · .NET核心ASP。带有会话和测试的NET控制器 6 年前 |