目前我们的测试遵循笨拙的四阶段测试风格来描述测试主体。 我一点也不喜欢那样,因为它看起来像一些老式的东西,与 xUnit 不兼容。 我的顾虑:
// Teardown
阶段在 xUnit 测试中始终为空,因为它sut
每个测试创建一个restore
。// Fixture setup
、 // Exercise System
和// Verify Outcome
看起来过于冗长,而// arrange
、 // act
和// assert
更加简洁。 如果你不从模板创建测试,那么写这些词要简单得多(写exercise
总是很难没有错别字😅)。因此, @moodmosaic如果您没有任何强烈反对(我希望您没有),我想将我们切换到 3 阶段测试并在我们所有的测试中使用它。 它会让我在测试创建过程中感到满足,而不是痛苦😖
去吧。 但我更喜欢第一个字母大写,即
// Arrange
// Act
// Assert
代替
// arrange
// act
// assert
您是否有充分的理由更喜欢第二种情况?
不,大写对我来说很好 - 我们使用 AAA 就足够了:脸红:
您还可以用空行分隔每个阶段,这是我现在使用的格式。 然后,测试读者可以假设它是Given/When/Then ,或Arrange/Act/Assert ,甚至(这里是四阶段) 。
您可以在此处的“使用多于三行代码的简单测试”部分中阅读有关此内容的更多信息。
我非常不喜欢在 OSS 中使用空行而不是注释,并且不同意 Marks 的想法。 在这里看到我的评论。
在这种特殊情况下,他们道歉
好吧,我也经常提到这个规则,但是在这种特殊情况下,我更喜欢保留那些“道歉”😄它们使测试的结构更加明显和严格。 我个人觉得阅读“标记”测试更容易,但这可能只是习惯问题😉
但这可能只是习惯问题
这个; 也许还有谁实际编写了测试的问题。
你好,我想解决这个问题。 我是 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# 有零经验,所以任何帮助将不胜感激
@micheleissa确保您使用最新版本的 VS(15.5.1 或更高版本),否则项目将无法打开(MS 对其 F# SDK 应用了更改)。 还要确保在关闭 VS 的情况下在 root 中运行git clean -fdx .
。 那是为了清理临时文件,以防您之前签出项目。
这两个步骤都应该有所帮助。 如果他们没有,请告诉我😉
@zvirja我已经升级到最新版本的 VS 2017 15.5.2 但仍然面临同样的问题😞
你试过第二部分了吗?
master
git clean -fdx .
似乎您只是从以前的 SDK 中获得了剩余物。
还要确保您的机器上安装了 F# 工具:
是的,我忘了第二个对不起:)
我现在就试试
@zvirja有效,非常感谢您的帮助!
还有一个问题,我如何将我在我的分叉回购中工作的分支与这张票相关联?
好的,我知道了。 谢谢! 我将在处理该问题时创建拉取请求,以便你们可以监控进度并根据贡献指南中提到的内容提供反馈。
最有用的评论
通常我使用
// Act & Assert
因为它看起来更简洁和酷😎除非@moodmosaic有顾虑,否则我更愿意遵循这种风格😉