我的团队正在努力对我们的一些开发人员进行测试方面的培训。他们理解为什么要编写测试,并且同意他们应该编写测试,但在编写好的测试方面还有些不足。
我刚看到这样的提交
public void SomeTest{
@Test
public void testSomething{
System.out.println(new mySomething.getData());
}
因此,他们至少通过查看确保他们的代码为他们提供了预期的输出。
我们还需要一段时间才能真正推销代码审查的理念。与此同时,我正在考虑让 JUnit 使任何没有实际 assertXXX 或 fail 语句的测试失败。然后我想让该失败消息说“您的测试应该使用断言并实际检查输出!”。
我完全希望这会导致像 assertTrue(1 == 1);
这样的调用。我们正在努力让团队参与适当的测试和代码审查,是否有任何技术机制我们可以使用来让已经获得它的开发人员的生活更轻松?帮助新人理解的技术机制如何?
最佳答案
我认为您应该考虑组织变革:指导、培训、代码审查。
只有在对目标有基本了解的情况下真诚地使用这些工具,它们才能为您提供帮助。如果缺少其中一个,他们将无法为您提供帮助。
人类只是太聪明了,会丢东西或绕过指标。我认为你的评估是不正确的,如果他们不能写一个有用的测试,“他们”就在船上。在这个阶段,自动工具根本不是正确的工具。您无法通过程序告诉您下一步该做什么来学习。
关于testing - 让 JUnit 失败的测试实际上并不运行断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5110210/