Unit testing 测试中的最佳实践是什么?
我想知道当你测试你的课程时,你的做法是什么 例如,我喜欢在我的装置中使用继承。 给定两个类BaseClass,SubClass,我创建了另外两个类BaseClassFixture和SubClassFixture(SubClassFixture是BaseClassFixture的一个子类)。所以我确信我不会破坏使用子类作为基类的代码(扩展我的类的人可以通过创建我的fixture的另一个子类来确定他们是否做得对) 我也对接口进行夹具继承。 例如,当我为IList创建一个fixture时,我会检查任何Add,将Count增加1。 当我有一个实现IList的具体类时,我只创建一个名为MyConcreteClassListFixture的装置 在这种情况下,我的接口的fixture是抽象的,我让我的子类为我的测试创建实例 我认为这是一种契约式设计(见Bertrand Meyer),因为我在任何测试之前和之后都会检查不变量 我特别是在发布接口或类时这样做Unit testing 测试中的最佳实践是什么?,unit-testing,testing,Unit Testing,Testing,我想知道当你测试你的课程时,你的做法是什么 例如,我喜欢在我的装置中使用继承。 给定两个类BaseClass,SubClass,我创建了另外两个类BaseClassFixture和SubClassFixture(SubClassFixture是BaseClassFixture的一个子类)。所以我确信我不会破坏使用子类作为基类的代码(扩展我的类的人可以通过创建我的fixture的另一个子类来确定他们是否做得对) 我也对接口进行夹具继承。 例如,当我为IList创建一个fixture时,我会检查任何
而你。。。你的做法是什么?我最重要的规则是每个测试都应该是原子的,并且不应该以特定的顺序运行 对于单元测试,他们应该严格遵守关注点的分离。 对于集成测试,我特别注意确保它们遵循最重要的规则
此外,测试应尽可能遵循代码中的枯燥规则。编写单元测试时有两件重要的事情 1) 单元测试应该是独立的: 单元测试必须是独立的。这意味着您的单元测试不应该依赖于外部事物来运行。这包括internet连接、外部web服务等 2) 单元测试应该是快速的: 单元测试应该运行得很快。您可以用多种方式编写单元测试。其中一些包括dataaccess,即使运行测试不需要访问数据。您可以始终使用模拟对象和模拟数据访问层 3) 良好的命名约定: 单元测试应该有良好的命名约定,读起来应该像故事一样 以下是一个例子: 当用户将钱从源帐户转移到目的帐户时的公共类 public void确保当来源帐户资金不足时抛出错误 { } 下面是一个很好的屏幕广播,涵盖了上述许多要点:
这个问题似乎很普遍;投票否决。问一些更具体的问题怎么样?不仅太笼统了,基本上和两天前的问题一样: