C# · 2月 1, 2022

c# – 跨测试共享AutoFixture

是否跨多个测试方法共享Fixture实例是一个好习惯? @H_403_2@或者为每种测试方法创建一个新的Fixture实例更好吗?

@H_403_2@什么是最佳做法?如果你能为我提供一个反模式的来源,那将是一件好事.

解决方法 AutoFixture的名称来自 Fixture模式: @H_403_2@“a test fixture is all the things we need to have in place in order to run a test and expect a particular outcome. […] Setting up the test fixture is the first phase of the 07001.”

@H_403_2@虽然Shared Fixture是一种概念上的可能性,但它有许多缺点,因为它使得测试更加难以相互独立.

@H_403_2@AutoFixture被明确设计为提供可重用的库来创建Fixtures,而不必为您需要创建的每种新类型的测试上下文手动编码Fixture Objects.

@H_403_2@有人创建了一个(AutoFixture)Fixture对象并在多个测试方法中共享它,但我从来不明白他们为什么这样做;它几乎击败了AutoFixture的目的.

@H_403_2@尽管如此,如果您发现这样的设置有用,我可以告诉您谁停止这样做?无论什么漂浮你的船……但是,AutoFixture的设计考虑了每个测试方法的一个Fixture实例的明确用例,而我没有看到以其他方式做任何优势.