我正在寻找一种改进的软件包,当它的输入在多个工作线程之间共享时,我认为该软件包不是线程安全的。根据TDD原则,我应该编写一些首先失败的测试,这些测试对于评估问题肯定是有用的。
我意识到这不是一件容易的事,而且,天真地,多线程测试将不确定,因为操作系统将确定调度和各种操作交错的确切顺序。过去,我已经研究并使用了MultithreadedTC,这很有用。但是,在那种情况下,我事先确切知道了现有实现的失败原因,因此能够编写涵盖它的一组不错的测试。
但是,如果您还不完全了解问题所在,那么是否有一种编写测试的好方法,该测试很有可能引发任何潜在的问题?是否有其他人认为有用的库?从纯粹的角度来看,我是否正确,多线程测试用例应该与通常的单线程测试具有相同的调用和断言,并且仅在适当的情况下与多个工作线程一起运行?
一般而言,任何有关工具/最佳实践/哲学的提议都将受到欢迎。
通过测试并发问题忘记获得良好的结果。尝试减少同步并使问题变小。然后使用尽可能高的库支持来进行同步。并且只有在您真正有能力时才尝试自己处理并发。当您知道每个工作人员都在正确地工作时,您所有的想法都告诉您,您遇到了并发问题,然后产生了一些有趣的负担。单元测试框架及其扩展可以做到这一点,但要知道您不再测试任何单元。(请记住,您已经覆盖了该部分)
如果您的并发模型变得复杂,请查看适用于SPIN之类的工具。
问题内容: 我们发现,为C#/ C++代码编写的单元测试确实得到了回报。但是我们在存储过程中仍然有成千上万的业务逻辑,只有在将我们的产品推向大量用户时才会真正受到愤怒的考验。 更糟糕的是,由于在SP之间传递临时表时会降低性能,因此某些存储过程最终会变得很长。这使我们无法重构以简化代码。 我们已经尝试过围绕一些关键存储过程构建单元测试(主要是测试性能),但是发现为这些测试设置测试数据确实很困难。例如
我正在尝试创建一个简单的安全spring boot网络项目。我可以很好地启动应用程序,安全性也很好地工作。但是,我有一些组件想要在没有安全性的情况下进行测试(或者完全测试--我根本无法使测试工作)。 我得到一个异常,指示它找不到ObjectPostProcessor,因此无法调出容器。 原因:org.SpringFramework.Beans.Factory.NoSuchBeanDefinitio
我已经开始学习OAuth2 spring安全从一个星期,所以对不起,如果问题是容易的。在我开始研究之前,这个话题对我来说似乎很容易。我将在应用程序中为Restendpoint编写测试。为了做到这一点,我将为我的资源类编写测试。但我的应用程序使用的是OAuth2。 第一个想法是配置单独的授权服务器,扩展AuthorizationServerConfigurerAdapter用于此测试。我已经将Cli
本文向大家介绍如何测试Java类的线程安全性,包括了如何测试Java类的线程安全性的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了如何测试Java类的线程安全性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 线程安全性是Java等语言/平台中类的一个重要标准,在Java中,我们经常在线程之间共享对象。由于缺乏线程安全性而导致的问题很难
问题内容: 是否可以在不设置数据库的情况下编写Django单元测试?我想测试不需要设置数据库的业务逻辑。尽管设置数据库的速度很快,但在某些情况下我真的不需要它。 问题答案: 你可以继承DjangoTestSuiteRunner的子类,并覆盖setup_databases和teardown_databases方法以进行传递。 创建一个新的设置文件,并将TEST_RUNNER设置为刚创建的新类。然后,
问题是,在您的应用程序项目中拥有一个除了为您的测试项目生成数据之外没有其他目的的方法是否是一种糟糕的做法。