Questions tagged «unit-testing»

单元测试是一种测试源代码的各个单元以确定它们是否适合使用的方法。

4
使用python的模拟patch.object更改另一个方法内调用的方法的返回值
是否可以模拟我要测试的另一个函数中调用的函数的返回值?我希望模拟方法(在我正在测试的许多方法中都会被调用)在每次调用时都返回我指定的变量。例如: class Foo: def method_1(): results = uses_some_other_method() def method_n(): results = uses_some_other_method() 在单元测试中,我想使用模拟来更改的返回值,uses_some_other_method()以便在每次调用时Foo,它将返回我定义的内容。@patch.object(...)

7
MSTest部署项目仅在项目测试设置文件中存在时才起作用吗?
我似乎无法理解应该如何配置MSTest部署项目。我已经能够通过修改项目的测试设置文件来使它们正常工作,但这并不理想-部署项目配置与单独的测试分开,并且文件路径似乎存储为绝对路径,除非文件是在解决方案文件夹下。 我是否可以使用上的[DeploymentItem]属性添加部署项目,[TestClass]或者[TestMethod]不必创建/修改项目测试设置文件?我该如何完成? (坦率地说,我不了解需要单独的部署项目配置-为什么不只对应作为部署项目的项目文件使用现有的“复制到输出目录”设置?)

5
如何在Django中模拟用户和请求
我有与请求对象或用户对象进行交互的Django代码。例如: foo_model_instance = models.get_or_create_foo_from_user(request.user) 如果要使用django python shell进行测试或在单元测试中进行测试,您将在其中传递什么?这里只是一个User对象即可,但是对模拟请求对象的需求也经常出现。 对于外壳程序或单元测试: 您如何嘲笑用户? 您如何模拟请求?

14
Python unittest:如何仅运行测试文件的一部分?
我有一个测试文件,其中包含花费大量时间的测试(它们将计算结果发送到集群并等待结果)。所有这些都在特定的TestCase类中。 由于它们需要时间,而且不太可能中断,因此我希望能够选择测试的该子集是否运行(最好的方法是使用命令行参数,即“ ./tests.py --offline”或其他内容)这样),因此我可以在需要的时候经常且快速地运行大多数测试,并偶尔进行整套测试。 现在,我只是unittest.main()用来开始测试。 谢谢。

9
何时使用TestFixtureSetUp属性代替默认构造函数?
NUnit文档没有告诉我何时使用带有a的方法TestFixtureSetup以及何时在构造函数中进行设置。 public class MyTest { private MyClass myClass; public MyTest() { myClass = new MyClass(); } [TestFixtureSetUp] public void Init() { myClass = new MyClass(); } } 关于TestFixtureSetup默认构造函数是否有好的/不好的做法,或者没有任何区别吗?
75 c#  unit-testing  nunit 

7
Android Instrumentation测试和Android Studio中的单元测试之间的区别?
自Android Studio 1.1rc起,提供了单元测试支持,我想知道Android Instrumentation Tests和Unit测试之间有什么区别。 据我了解: 单元测试对于测试未调用Android API的代码很有用,而Android工具测试则是用于测试特定于Android API的元素或GUI组件的集成测试。 但是,如果在单元测试中使用Robolectric或Mockito之类的框架,那么如果我没有记错的话,可以测试Android代码(无需设备)。 这是正确的还是更大的区别?如果是这样,每个有什么用?

13
如何将单元测试引入大型的(C / C ++)代码库中?
我们有一个大型的,用C语言编写的多平台应用程序(使用的C ++数量很少,但数量在不断增长)。随着多年来的发展,它具有许多您希望在大型C / C ++应用程序中使用的功能: #ifdef 地狱 大文件使得难以隔离可测试代码 功能太复杂而无法轻松测试 由于此代码是针对嵌入式设备的,因此在实际目标上运行它会产生大量开销。因此,我们希望在本地系统上快速完成更多的开发和测试。但是,我们希望避免采用经典策略“将文件复制/粘贴到系统上的.c文件中,修复错误,然后复制/粘贴回”。如果开发人员要麻烦这样做,我们希望以后能够重新创建相同的测试,并以自动化的方式运行。 这是我们的问题:为了将代码重构为更具模块化,我们需要使其更具可测试性。但是,为了引入自动化的单元测试,我们需要使其更具模块化。 一个问题是,由于我们的文件太大,因此我们可能在文件中包含一个函数,该函数在同一文件中调用一个函数,因此需要对它进行存根以进行良好的单元测试。随着我们的代码变得更加模块化,似乎这将不再是问题,但这还有很长的路要走。 我们考虑做的一件事是用注释标记“已知是可测试的”源代码。然后,我们可以编写脚本扫描源文件以获取可测试的代码,将其编译为单独的文件,然后将其与单元测试链接。我们可以在修复缺陷和添加更多功能时慢慢介绍单元测试。 但是,令人担忧的是,维护此方案(以及所有必需的桩函数)将变得很麻烦,并且开发人员将停止维护单元测试。因此,另一种方法是使用一种工具,该工具会自动为所有代码生成存根,并将其与文件链接。(我们发现唯一可以执行此操作的工具是昂贵的商业产品),但是这种方法似乎要求我们所有的代码在开始之前都必须更加模块化,因为只能进行外部调用。 就个人而言,我希望开发人员考虑其外部依赖关系并智能地编写自己的存根。但是,如果将所有依赖项存根为一个严重过度增长的10,000行文件,可能会不堪重负。可能很难说服开发人员他们需要维护所有外部依赖项的存根,但这是正确的方法吗?(我听到的另一个论点是子系统的维护者应维护其子系统的存根。但是我想知道是否“强迫”开发人员编写自己的存根会导致更好的单元测试?) 的#ifdefs,当然,再添全尺寸的问题。 我们已经研究了几种基于C / C ++的单元测试框架,并且有很多看起来不错的选项。但是我们还没有发现任何简化从“没有单元测试的代码圈”到“可单元测试的代码”的过渡的方法。 因此,这是我对遇到过此问题的其他人的疑问: 一个好的起点是什么?我们是朝着正确的方向前进,还是缺少明显的东西? 哪些工具可能有助于过渡?(最好是免费/开源,因为我们目前的预算大约为“零”) 注意,我们的构建环境是基于Linux / UNIX的,因此我们不能使用任何仅Windows的工具。
74 c++  c  unit-testing  unix  legacy 

1
创建或获取特定的SPTimeZone实例
创建以下特定实例的最便捷方法Microsoft.SharePoint.SPTimeZone是: SPTimeZone utc = SPRegionalSettings.GlobalTimeZones .OfType<SPTimeZone>() .FirstOrDefault(tz => tz.Information.Bias == 0 && tz.Information.DaylightBias == 0); 这是我能得到的最好的技巧吗? 这对我来说尤其是个问题,因为我想模拟这部分代码以进行单元测试,并强制其始终返回UTC。该属性GlobalTimeZones似乎取决于HttpContext.Current或实际的请求-我在单元测试中没有的先决条件... 注意:我知道只有System.TimeZoneInfo第三方大会迫使我使用SPTimeZone ...

6
对ASP .NET应用程序进行单元测试时如何使用web.config
我从单元测试开始,我有一个使用web.config作为连接字符串的方法。 我希望能够使用 [DeploymentItem("web.config")] 要获取Web配置文件,这仍然给我留下了null引用异常(这就是我编写下一个测试的目的)。 如何使用我要测试的项目随附的配置文件? 我正在使用VS 2008中包含的测试框架,如果有什么不同的话。 谢谢

2
db:test:clone,db:test:clone_structure,db:test:load和db:test:prepare有什么区别?
对于Rails和数据库的新手来说,您必须承认rubyonrails.org上的官方解释使所有这四个任务听起来完全一样。引用: rake db:test:clone Recreate the test database from the current environment’s database schema rake db:test:clone_structure Recreate the test database from the development structure rake db:test:load Recreate the test database from the current schema.rb rake db:test:prepare Check for pending migrations and load the test schema 我什至不知道结构和架构之间的区别。加载当前环境的架构和仅加载schema.rb有什么区别? 这些任务到底有多相似(或不同)?

6
用Moq模拟EF DbContext
我正在尝试使用模拟的DbContext为我的服务创建单元测试。我创建了一个IDbContext具有以下功能的接口: public interface IDbContext : IDisposable { IDbSet<T> Set<T>() where T : class; DbEntityEntry<T> Entry<T>(T entity) where T : class; int SaveChanges(); } 我的真实上下文实现了此接口IDbContext和DbContext。 现在,我尝试IDbSet<T>在上下文中模拟,因此它返回一个List<User>。 [TestMethod] public void TestGetAllUsers() { // Arrange var mock = new Mock<IDbContext>(); mock.Setup(x => x.Set<User>()) .Returns(new List<User> { new User { ID = 1 } …

3
Maven ::在多模块项目中仅运行单个测试
有什么方法可以提供一些命令行参数来跳过所有测试,而只跳过某个模块上的测试?因此,我不需要每次运行其他测试时都更改pom.xml吗? 例如,我想在TeamCity上创建构建配置,并提供命令行参数以仅在某个模块中运行单个测试。下次,我将需要更改它并运行另一个测试,依此类推。 也许这不是打算如何使用CI,但仍然如此。

10
在.NET Core测试项目中读取appsettings json值
我的Web应用程序需要从appsettings.json文件读取Document DB密钥。我创建了一个具有键名的类,并以如下方式读取Config部分ConfigureaServices(): public Startup(IHostingEnvironment env) { var builder = new ConfigurationBuilder() .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables(); Configuration = builder.Build(); } public IConfigurationRoot Configuration { get; } public void ConfigureServices(IServiceCollection services) { services.AddMvc().AddJsonOptions(options => options.SerializerSettings.ContractResolver = new DefaultContractResolver()); services.AddSession(); Helpers.GetConfigurationSettings(services, Configuration); DIBuilder.AddDependency(services, Configuration); } 我正在寻找在测试项目中读取键值的方法。

12
@Mock注释后,模拟实例为null
我尝试运行此测试: @Mock IRoutingObjHttpClient routingClientMock; @Mock IRoutingResponseRepository routingResponseRepositoryMock; @Test public void testSendRoutingRequest() throws Exception { CompleteRoutingResponse completeRoutingResponse = new CompleteRoutingResponse(); completeRoutingResponse.regression_latencyMillis = 500L; Mockito.when(routingClientMock.sendRoutingRequest(any(RoutingRequest.class))).thenReturn(completeRoutingResponse); RoutingObjHttpClientWithReRun routingObjHttpClientWithReRun = new RoutingObjHttpClientWithReRun (routingClientMock, routingResponseRepositoryMock); ... } 但我得到NullPointerException为: Mockito.when(routingClientMock. 我想念什么?

6
测试中没有预期的异常
我想创建NUnit测试以确保我的函数不会引发异常。有什么具体的方法可以做到吗,或者我应该写 [Test] public void noExceptionTest() { testedFunction(); } 如果没有异常抛出,它将成功吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.