javascript

java

python

c#

android

c++

node.js

php

html

jquery

reactjs

ios

css

.net

git

ruby-on-rails

sql

c

string

ruby

测试-什么是对象模拟,何时需要?

许多人在编写单元测试时都使用模拟对象。 什么是模拟对象? 为什么我需要一个? 我需要模拟对象框架吗?

trans by 2020-08-03T19:07:28Z

python-如何自动销毁Django测试数据库

我目前正在尝试使用hudson自动化django测试,并且正在努力寻找一个可以自动销毁测试数据库(如果已经存在)的选项(通常会要求确认以销毁它,这显然是自动测试无法提供的) 。

我们欢迎所有的建议!

干杯,[R

trans by 2020-08-03T14:32:33Z

java-自动使用随机数据填充原始属性?

是否有一个Java库可以帮助创建用于测试的类的实例? 一种检查bean的属性并用随机数据填充它的函数。
我基本上是在寻找Java等效于C#的对象Hydrator。

trans by 2020-08-01T12:21:00Z

测试-Python单元测试是否有类似“自动测试”的内容?

基本上,当测试中断或通过时,咆哮通知(或其他回调)。 像这样的东西存在吗?

如果没有,那应该很容易写..最简单的方法是..

  1. 运行autotest
    • 检查要监视的文件是否已被修改(可能只是已保存)。
    • 在这些文件中运行任何测试。
    • 如果测试失败,但在上一次运行中通过,则生成咆哮警报。 与失败然后通过的测试相同。
    • 等待,然后重复步骤2-5。

我可以看到的问题是测试是否在其他文件中。 一种简单的解决方案是在每次保存之后运行所有测试..但是测试速度较慢,这可能比两次保存之间的时间更长,并且/或者可能使用大量的CPU能力等。

最好的方法是实际查看代码的哪些部分已更改,如果函数abc()已更改,则仅运行与此交互的测试。虽然这很棒,但我认为这样做极其复杂 实行?

总结一下:

  • 是否有像Ruby工具autotest(ZenTest包的一部分)之类的东西,但适用于Python代码?
  • 如何检查两个脚本修订版之间哪些功能已更改?
  • 是否可以确定命令将调用哪些功能? (有点像反向追溯)
trans by 2020-07-30T20:19:43Z

变异测试在实践中有用吗?

您是否有实例说明突变测试在现实生活中的应用? 它比简单的测试覆盖率工具更好吗? 还是没用?

在现实世界中,突变测试有哪些优点/缺点?

trans by 2020-07-26T20:56:39Z

测试-如何测试是否已导入一个python模块?

如何测试是否已在python中导入模块?

例如,我需要基础知识:

if not has_imported("sys"):
   import sys

if not has_imported("sys.path"): 
   from sys import path

谢谢!

角色扮演。

感谢您的所有评论:代码已粘贴到此处。自动导入文件夹中的所有子模块,然后调用相同名称的函数-python runtime inspect related

trans by 2020-07-26T02:18:07Z

android-没有发布应用的Google Play Beta测试?

我创建了我的第一个Android应用,并希望让一些用户参与新的Google Beta测试功能。 不幸的是,我的应用已发布为正式版APK,现在所有人都可以看到。 那不是我的意图,因为我的应用程序还远未发布。

如果我取消发布我的应用,那么Beta测试用户也将无法访问它。 因此,我必须将其发布以运行Beta测试。

我有什么办法可以最好地利用这种情况?

  • 使用虚拟应用程序作为正式版APK?
  • 保持未发布状态,然后重新以新的程序包名称开头?

最简单的方法是删除已发布的应用程序,但Google拒绝。

trans by 2020-07-25T21:43:16Z

题-是否可以从coverage.py报告中排除测试目录?

我是python单元测试的新手,尤其是coverage.py。 是否希望覆盖报告包含实际测试文件的覆盖范围?

这是我的HTML报告的屏幕截图作为示例。

您可以看到该报告包括tests/test_credit_card。起初,我试图从报告中省略tests/目录,如下所示:

coverage html --omit=tests/ -d tests/coverage

我尝试了该命令的几种变体,但我终生无法进行测试/排除。 接受失败后,我开始怀疑也许测试文件应该包含在报告中。

谁能对此有所启发?

trans by 2020-07-25T18:48:52Z

测试-单独的“调试”和“发布”版本?

我认为最好发布开发人员实际测试过的软件版本。 因此,我倾向于从项目/ makefile中删除“调试”目标,因此只能构建(测试,调试和发布)一个版本。

由于类似的原因,我不使用“断言”(另请参见断言是否总是不好?...)。

那里的一个人认为,“调试”版本的原因是调试起来更容易:但是,我反驳说,您最终可能希望支持和调试所发布的内容,因此您需要构建一个发布版本, 您可以在必要时进行调试...这可能意味着启用调试符号并禁用某些优化,即使在“发行版”版本中也是如此。

有人说“这真是个坏主意”。 这是我几年前制定的政策,但遭到了以下方面的追捧:

  • 一些开发人员正在测试其调试版本,但没有发布版本
  • 一些开发人员的编写错误,仅在发行版中显示
  • 该公司在测试不足后发布了发行版本(是否完全足够?)
  • 被调用以调试发行版

从那时起,我已经看到其他多家开发商店都遵循这种做法(即没有单独的调试和发布版本)。

你有什么政策?

trans by 2020-07-22T21:47:24Z

单元测试-为什么模拟类是如此糟糕?

我最近与一位同事讨论了关于嘲讽的问题。 他说,模拟类非常糟糕,仅在少数情况下不应该这样做。

他说,只有接口应该被模拟,否则是架构错误。

我不知道为什么这种说法(我完全相信他)如此正确? 我不知道,我想被说服。

我是否错过了嘲讽的要点(是的,我阅读了马丁·福勒的文章)

trans by 2020-07-22T18:27:49Z

测试-使用Gotes跳过一些测试

是否可以跳过/排除使用-run运行的某些测试?

我有大量的集成类型测试,这些调用称为标准go测试编写的rest服务,并使用-run运行。开发新功能时,有时可以跳过某些测试(例如,如果新测试)很有用 该功能尚未部署在测试服务器上,我仍然想运行所有现有测试(那些测试新功能的新测试除外)。

我知道-run,但是我不想指定我要运行的所有测试,那将是一长串。 同时,我无法编写排除测试的正则表达式。

另一个选择是不提交不在同一分支中运行的测试,但是如果我仅指定要排除的内容,则会更容易。

trans by 2020-07-21T17:25:09Z

java-一个简单的本地SMTP

我想测试用于发送电子邮件的Java代码。 我不想使用任何商业邮件客户端或连接到任何外部邮件提供商(例如Gmail或Yahoo)。 我想知道是否存在允许用户配置虚拟电子邮件地址和服务器(本地)的软件,这些软件可以在我的软件中用于发送和接收邮件。 我只想测试Java代码的功能。

trans by 2020-07-20T20:14:13Z

c#-如何使用构造函数依赖项注入对asp.net核心应用程序进行单元测试

我有一个使用应用程序的startup.cs类中定义的依赖项注入的asp.net核心应用程序:

    public void ConfigureServices(IServiceCollection services)
    {

        services.AddDbContext<ApplicationDbContext>(options =>
            options.UseSqlServer(Configuration["Data:FotballConnection:DefaultConnection"]));


        // Repositories
        services.AddScoped<IUserRepository, UserRepository>();
        services.AddScoped<IUserRoleRepository, UserRoleRepository>();
        services.AddScoped<IRoleRepository, RoleRepository>();
        services.AddScoped<ILoggingRepository, LoggingRepository>();

        // Services
        services.AddScoped<IMembershipService, MembershipService>();
        services.AddScoped<IEncryptionService, EncryptionService>();

        // new repos
        services.AddScoped<IMatchService, MatchService>();
        services.AddScoped<IMatchRepository, MatchRepository>();
        services.AddScoped<IMatchBetRepository, MatchBetRepository>();
        services.AddScoped<ITeamRepository, TeamRepository>();

        services.AddScoped<IFootballAPI, FootballAPIService>();

这允许这样的事情:

[Route("api/[controller]")]
public class MatchController : AuthorizedController
{
    private readonly IMatchService _matchService;
    private readonly IMatchRepository _matchRepository;
    private readonly IMatchBetRepository _matchBetRepository;
    private readonly IUserRepository _userRepository;
    private readonly ILoggingRepository _loggingRepository;

    public MatchController(IMatchService matchService, IMatchRepository matchRepository, IMatchBetRepository matchBetRepository, ILoggingRepository loggingRepository, IUserRepository userRepository)
    {
        _matchService = matchService;
        _matchRepository = matchRepository;
        _matchBetRepository = matchBetRepository;
        _userRepository = userRepository;
        _loggingRepository = loggingRepository;
    }

这很整洁。 但是当我要进行单元测试时成为一个问题。 因为我的测试库没有在其中设置依赖项注入的startup.cs。 因此,将这些接口作为参数的类将为null。

namespace TestLibrary
{
    public class FootballAPIService
    {
        private readonly IMatchRepository _matchRepository;
        private readonly ITeamRepository _teamRepository;

        public FootballAPIService(IMatchRepository matchRepository, ITeamRepository teamRepository)

        {
            _matchRepository = matchRepository;
            _teamRepository = teamRepository;

在上面的代码中,在测试库中,_matchRepository和_teamRepository将仅为null。 :(

我可以做类似ConfigureServices之类的事情,在我的测试库项目中定义依赖项注入吗?

trans by 2020-07-20T16:34:12Z

测试-如何测试AngularJS指令

我正在开发将使用AngularJS的Rails 3.2应用程序。 我可以让Angular做我需要的事情,但是我很难弄清楚如何测试我的工作。 我正在使用Guard-jasmine通过PhantomJS运行Jasmine规范。

这是(相关的)html:

<html id="ng-app" ng-app="app">
  <div id="directive-element" class="directive-element">
  </div>
</html>

javascript(在coffeescript中)如下所示:

window.Project =
  App: angular.module('app', [])
  Directive: {}

Project.Directive.DirectiveElement =
  ->
    restrict: 'C'
    link: (scope, element, attrs) ->
      element.html 'hello world'
Project.App.directive 'directiveElement', Project.Directive.DirectiveElement

上面的代码完全可以实现预期的目的。 测试是问题所在。 我根本无法让他们工作。 这是我尝试过的一件事。 发布此消息主要只是为了开始某个地方的对话。

describe 'App.Directive.DirectiveElement', ->
  it 'updates directive-element', ->
    inject ($compile, $rootScope) ->
      element = $compile('<div id="app" ng-app="app"><div id="directive'element" class="directive-element"></div></div>')
      expect(element.text()).toEqual('hello world')

顺便说一句,我是AngularJS的新手,因此,如果我没有遵循有关命名空间,模块等的最佳实践,则可以提供指导。

我该如何进行测试?

trans by 2020-07-17T15:45:14Z

c ++-降级的网络堆栈,文件损坏和其他缺陷的单元测试处理

我主要是C ++编码器,到目前为止,我并未真正为所有代码编写测试。 在添加了巧妙地打破了旧功能的新功能之后,或者已经根据您希望如何看待它,引入了自己的一些新“功能”,我认为这是一个坏主意(tm)。

但是,单元测试似乎是一种极其脆弱的机制。 您可以在“完美”的条件下测试某些东西,但看不到东西中断时代码的性能如何。 举例来说,它是一个搜寻器,假设它搜寻了几个特定的网站,以获取数据X。您是否只是保存示例页面,对其进行测试,并希望这些站点永远不变? 这可以用作回归测试,但是,您会编写什么样的测试来不断检查这些站点的运行状况,并在应用程序由于站点更改而导致应用程序崩溃时不通知您,它会导致应用程序崩溃? 您不希望您的测试套件监视代码的意图吗?

上面的示例有些人为设计,有些东西我还没有遇到过(以防万一你没猜到)。 不过,让我选择我拥有的东西。 在网络堆栈降级的情况下,您如何测试应用程序将完成其工作? 就是说,由于某种原因或其他原因,您有中等程度的数据包丢失,并且您具有DoSomethingOverTheNetwork()函数,当堆栈未达到预期的性能时,该函数应适当降低; 但是吗? 开发人员通过有意建立一个网关来亲自测试它,该网关在首次写入网络时会丢弃数据包以模拟不良网络。 几个月后,有人签入了一些代码,这些代码巧妙地修改了某些内容,因此无法及时检测到降级,或者,应用程序甚至无法识别降级,因为您无法运行真实世界,所以这是永远不会发现的 使用单元测试进行这样的测试,可以吗?

此外,文件损坏如何? 假设您将服务器列表存储在文件中,并且校验和看起来还可以,但是数据不是真的。 您希望代码能够处理该问题,编写一些您认为可以做到的代码。 您如何测试它在应用程序的整个生命周期中是否确实如此? 你能?

因此,脆性。 单元测试似乎只能在完美的条件下测试代码(并且通过模拟对象等来促进),而不是在野外面对的代码。 不要误会我的意思,我认为单元测试很棒,但是仅由它们组成的测试套件似乎是在您的代码中过分自信的同时在代码中引入细微错误的明智方法。

如何解决以上情况? 如果不是单元测试,那是什么?

编辑:我看到很多回答说“只是嘲笑它”。好吧,您不能“只是嘲笑它”,原因如下:以降低网络堆栈性能的示例为例,假设您的函数具有定义良好的NetworkInterface,我们将对其进行模拟。该应用程序同时通过TCP和UDP发送数据包。现在,让我们说,嘿,让我们使用模拟对象在接口上模拟10%的损耗,然后看看会发生什么。 TCP连接增加了它们的重试尝试,并增加了它们的退避,所有这些都是很好的做法。您决定更改X%的UDP数据包以实际建立TCP连接,有损接口,我们希望能够保证某些数据包的传递,而其他数据包不会丢失太多。效果很好。同时,在现实世界中..当您增加TCP连接(或TCP上的数据)的数量时,在有损的连接上,最终将增加UDP数据包丢失,因为TCP连接最终会重新-越来越多地发送数据和/或减小其窗口,导致10%的数据包丢失实际上实际上现在相当于90%UDP的数据包丢失。哎呀

没什么大不了的,让我们将其分为UDPInterface和TCPInterface。 请稍等..它们是相互依存的,测试10%UDP丢失和10%TCP丢失与上面没有什么不同。

因此,问题在于,您现在不仅要对代码进行单元测试,还要将假设引入操作系统的TCP堆栈的工作方式中。 而且,这是一个坏主意。 这比避免避免整个惨败要糟糕得多。

在某个时候,您将不得不创建一个模拟操作系统,其行为与您的真实操作系统完全相同,只是可以测试。 这似乎不是前进的好方法。

这是我们经历过的东西,我相信其他人也可以添加他们的经历。

我希望有人能告诉我我错了,并指出原因!

谢谢!

trans by 2020-07-10T17:40:48Z

ruby-如何设置在方法测试中使用的私有实例变量?

给定一个带有几个实例变量和一些方法的类。 某些实例变量可通过Object::instance_eval(:var)context进行设置,因此其他变量是私有的。
一些私有实例变量在一个实例方法中设置,并在另一个方法中读取/使用。

为了进行测试,我使用了RSpec。 由于我还是Ruby的新手,并且想把所有事情都做对,因此我将测试定义为非常精细。 因此,对于每个实例方法,我都有一个Object::instance_eval(:var)块,它们自己被划分为contexts和its的子集。 before定义了一般环境先决条件。

但是,在测试其中一种方法(利用但未设置其中一个私有变量)时,我需要调用另一种方法来设置此变量。 对于我来说,这似乎有些超重而不是模块化的。

有没有一种方法可以将私有实例变量强制为某个值。 类似于使用Object::instance_eval(:var)“删除”私有实例变量的值。

trans by 2020-07-10T11:04:06Z

测试-如何启动可重复使用的django应用程序的测试?

是否可以在不将可重复使用的Django应用程序集成到项目中的情况下启动测试?

我的应用程序使用某些模型,因此有必要提供manage.py test设置。 我应该将它们存储在哪里以及应该如何启动测试?

对于Django项目,我可以使用manage.py test运行测试; 当我在独立应用程序中使用django-admin.py test时,我得到:

错误:无法导入设置, 因为环境变量 DJANGO_SETTINGS_MODULE未定义。

这里的最佳做法是什么?

trans by 2020-07-10T01:38:05Z

ios-AVPlayer和Vid的屏幕截图

我试图在更大的视图中截取AVAssetGenerator的屏幕截图。 我只想构建一个测试框架,所以私有renderInContext或其他任何方法都不错,因为在发布到AppStore时不会包含该框架。

我尝试使用

  • AVAssetGenerator:在模拟器上效果很好,但在设备上效果不佳
  • AVAssetGenerator:它显示了视图,但是我不能从中创建renderInContext
  • AVAssetGeneratorrenderInContext无法与AVPlayer一起使用
  • 我不想使用AVAssetGenerator从视频中获取图像,很难获得良好的坐标或将视频播放器作为其他视图的子视图
trans by 2020-07-07T15:14:49Z

使用SoapUI和Windows身份验证测试Web服务

是否可以包含Windows域凭据来使用SOAP UI测试我的Web服务?

我找到了一个属性页,但是IIS只是使用“错误的凭据”进行响应。

trans by 2020-07-06T11:55:56Z

Web服务-使用Web服务的Curl命令行?

你们知道我如何使用Curl命令行发布SOAP来测试Web服务吗?

我有一个文件(soap.xml),上面附加了所有肥皂消息,但我似乎无法正确发布它。

谢谢!

trans by 2020-07-04T15:36:11Z

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 下一页 共15页