使用构建器模式进行下一级Swift单元测试

介绍

单元测试对于软件项目至关重要,但是会增加开销。 在本文中,我将讨论如何利用构建器模式来提高团队编写,审查和维护单元测试的效率。 我将从谈论什么是模式以及为什么它在单元测试中特别有用开始。 然后,我将说明您可以通过使用该模式获得的收益。 最后,我将向您展示如何在Xcode项目中创建构建器类。

本文使用了使用Swift的iOS代码示例,但它们同样适用于几乎所有语言和平台。

可以在https://github.com/gearnshaw/BuilderPatternExample中找到本文中使用的完整示例代码。

什么是构建器模式?

构建器模式用于创建对象,将其设置与创建分开。 通过引入这种分隔,您可以:为对象中的字段设置默认值;为对象设置默认值。 仅覆盖需要显式设置的值; 提供复杂对象状态的预设; 并且,轻松创建复杂的对象图。

该模式在单元测试中特别有用,因为它们需要您一遍又一遍地创建对象,并为每个测试用例将它们设置为正确的状态。 如果您每次手动创建对象,您都会发现自己在重复代码,将对象设置从一个测试复制并粘贴到另一个测试,并在单元测试中编写各种混合的createMyObject()函数。 这些问题造成了重构的噩梦,使您难以理解测试的内容和原因。 构建器模式避免了这种情况,使您可以快速,干净且可维护地创建对象。

在测试中使用构建器模式的主要好处是:

  • 意图交流 :从您的代码中可以明显看出测试中需要什么状态
  • 易于重构 :当对象接口更改时,重构测试很简单
  • 最少的代码 :测试代码简洁,样板代码少

这些共同导致了一个易于编码,审查和维护的项目。

考虑一个称为Device的对象。 它是一个简单的结构 ,但相同的原理适用于任何类型的对象,包括使用核心数据的对象。 我将在本文的示例中使用此对象。

建造者的解剖

这是完整的DeviceBuilder类。

Interesting Posts