Autofixture: 建议:按照“Arrange Act Assert”风格进行测试

创建于 2017-11-18  ·  22评论  ·  资料来源: AutoFixture/AutoFixture

目前我们的测试遵循笨拙的四阶段测试风格来描述测试主体。 我一点也不喜欢那样,因为它看起来像一些老式的东西,与 xUnit 不兼容。 我的顾虑:

  • // Teardown阶段在 xUnit 测试中始终为空,因为它sut每个测试创建一个restore
  • // Fixture setup// Exercise System// Verify Outcome看起来过于冗长,而// arrange// act// assert更加简洁。 如果你不从模板创建测试,那么写这些词要简单得多(写exercise总是很难没有错别字😅)。

因此, @moodmosaic如果您没有任何强烈反对(我希望您没有),我想将我们切换到 3 阶段测试并在我们所有的测试中使用它。 它会让我在测试创建过程中感到满足,而不是痛苦😖

enhancement good first issue

最有用的评论

通常我使用// Act & Assert因为它看起来更简洁和酷😎除非@moodmosaic有顾虑,否则我更愿意遵循这种风格😉

所有22条评论

去吧。 但我更喜欢第一个字母大写,即

// Arrange
// Act
// Assert

代替

// arrange
// act
// assert

您是否有充分的理由更喜欢第二种情况?

不,大写对我来说很好 - 我们使用 AAA 就足够了:脸红:

您还可以用空行分隔每个阶段,这是我现在使用的格式。 然后,测试读者可以假设它是Given/When/Then ,或Arrange/Act/Assert ,甚至(这里是四阶段)

您可以在此处的“使用多于三行代码的简单测试”部分中阅读有关此内容的更多信息。

我非常不喜欢在 OSS 中使用空行而不是注释,并且不同意 Marks 的想法。 在这里看到我的评论。

每个测试阶段顶部的评论基本上都是道歉,因为他们解释了如何-而不是为什么


现在,回到 AutoFixture,因为所有测试都用注释修饰,并且由于夹具拆卸阶段几乎一直是空的,我们可以继续将它们更改为AAA

在这种特殊情况下,他们道歉

好吧,我也经常提到这个规则,但是在这种特殊情况下,我更喜欢保留那些“道歉”😄它们使测试的结构更加明显和严格。 我个人觉得阅读“标记”测试更容易,但这可能只是习惯问题😉

但这可能只是习惯问题

这个; 也许还有谁实际编写了测试的问题。

你好,我想解决这个问题。 我是 Autofixture 的忠实粉丝,并且一直在我的工作中使用它,这将是一种回馈的好方法。
所以基本上你们想要在所有测试文件中更改以下内容:
// Fixture setup// Arrange
// Exercise System// Act
// Verify Outcome// Assert
最后// Teardown一无所获。

是的,但请记住,由于某些阶段在某些测试中被连接在一起,因此执行“查找和替换”可能不起作用。 也就是说,您可能会遇到锻炼系统并验证结果和类似的 IIRC。

@moodmosaic我明白,我打算逐个文件地做,而不是一个完整的“查找和替换”,但我可能仍然在更明显/更简单的情况下使用它。

谢谢,
艾莎

@moodmosaic // Exercise system and verify outcome它应该被替换为
// Act and Assert
还是你们想的不一样?

通常我使用// Act & Assert因为它看起来更简洁和酷😎除非@moodmosaic有顾虑,否则我更愿意遵循这种风格😉

无论哪种方式都可以:neckbeard:

所以我试图从这个开始,在 VS 2017 中加载 All.sln 后,两个 F# 项目
( AutoFoq,AutoFoqUnitTest ) 无法打开。 我对 F# 有零经验,所以任何帮助将不胜感激
screenshot_121417_042805_pm

@micheleissa确保您使用最新版本的 VS(15.5.1 或更高版本),否则项目将无法打开(MS 对其 F# SDK 应用了更改)。 还要确保在关闭 VS 的情况下在 root 中运行git clean -fdx . 。 那是为了清理临时文件,以防您之前签出项目。

这两个步骤都应该有所帮助。 如果他们没有,请告诉我😉

screenshot_121517_111531_am
@zvirja我已经升级到最新版本的 VS 2017 15.5.2 但仍然面临同样的问题😞

你试过第二部分了吗?

  • 关闭VS
  • 查看最新的master
  • 转到 root 并运行git clean -fdx .
  • 再开VS?

似乎您只是从以前的 SDK 中获得了剩余物。

还要确保您的机器上安装了 F# 工具:
image

是的,我忘了第二个对不起:)
我现在就试试

@zvirja有效,非常感谢您的帮助!

还有一个问题,我如何将我在我的分叉回购中工作的分支与这张票相关联?

太棒了! 👍

我如何将我在我的分叉回购中工作的分支与这张票相关联?

我建议看看这篇文章,工作流程在那里有很好的描述: https :

基本上,您不需要将分支与此问题相关联。 相反,您创建一个拉取请求并在正文中简单地提及这个问题(例如,参见这个)。

好的,我知道了。 谢谢! 我将在处理该问题时创建拉取请求,以便你们可以监控进度并根据贡献指南中提到的内容提供反馈。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

joelleortiz picture joelleortiz  ·  4评论

Ephasme picture Ephasme  ·  3评论

Eldar1205 picture Eldar1205  ·  5评论

mjfreelancing picture mjfreelancing  ·  4评论

JoshKeegan picture JoshKeegan  ·  6评论