我想知道如何强制Valgrind工具只显示内存泄漏!
有--leak-check=full或--leak-check=full它显示内存泄漏(这是好的),但也有未初始化问题和/或条件跳转问题
谢谢!
我正在测试我的类ElasticUtility,它需要一个实例ElasticClient才能正常工作所以我嘲笑这个类并将其注入ElasticUtility实例(utility)
private ElasticUtility utility;
private Mock<IElasticClient> elasticClientMock;
private string elasticSearchIndexName;
elasticClientMock = new Mock<IElasticClient>();
utility = new UhhElasticUtility(elasticClientMock.Object);
Run Code Online (Sandbox Code Playgroud)
这是实际的测试代码:
[Test]
public void GetGetPvDataClientReturnNull()
{
// arrange
var groupId = "groupid";
var startTime = new DateTime(2015, 08, 17, 13, 30, 00);
var endTime = new DateTime(2015, 08, 17, 13, 40, 00);
// act
utility.GetPvData(groupId, startTime, endTime);
// assert
elasticClientMock.Verify(ec => ec.Search<SegmentRecord>(It.IsAny<Nest.ISearchRequest>()), Times.Once());
}
Run Code Online (Sandbox Code Playgroud)
当Moq库调用.Search()mocked中的方法时,我得到一个Null引用异常ElastiClient.
编辑:
构造函数ElasticUtility:
protected …Run Code Online (Sandbox Code Playgroud) 在业余时间,我开始为6502 CPU编写一个非常简单的C++仿真器.我以前写了很多的汇编代码为这个CPU,这样所有的操作码,寻址方式和其他的东西是不是一个大问题.
6502具有56种不同的指令和13种寻址模式,总共有151种不同的操作码.对我来说速度不是问题,所以不要写一个巨大的switch-case语句并反复重复相同的代码(不同的操作码可以使用不同的寻址模式引用相同的指令)我想将实际的指令代码与寻址模式代码:我发现这个解决方案很整齐,因为它需要只写13寻址模式功能和56个指令功能,无需重复自己.
这里的寻址模式功能:
// Addressing modes
uint16_t Addr_ACC(); // ACCUMULATOR
uint16_t Addr_IMM(); // IMMEDIATE
uint16_t Addr_ABS(); // ABSOLUTE
uint16_t Addr_ZER(); // ZERO PAGE
uint16_t Addr_ZEX(); // INDEXED-X ZERO PAGE
uint16_t Addr_ZEY(); // INDEXED-Y ZERO PAGE
uint16_t Addr_ABX(); // INDEXED-X ABSOLUTE
uint16_t Addr_ABY(); // INDEXED-Y ABSOLUTE
uint16_t Addr_IMP(); // IMPLIED
uint16_t Addr_REL(); // RELATIVE
uint16_t Addr_INX(); // INDEXED-X INDIRECT
uint16_t Addr_INY(); // INDEXED-Y INDIRECT
uint16_t Addr_ABI(); // ABSOLUTE INDIRECT
Run Code Online (Sandbox Code Playgroud)
它们都返回指令用来读/写操作数/结果的实际存储器地址(16位)
指令函数原型是:
void Op_ADC(uint16_t addr);
void Op_AND(uint16_t addr);
void Op_ASL(uint16_t addr); …Run Code Online (Sandbox Code Playgroud) 我有一个ASP .NET WebApi2 api,它以JSON格式返回一些时间戳.时间戳有毫秒级的分辨率.
通常我得到这种格式的时间戳,这很好 "YYYY-MM-DDThh:mm:ss.sss"
不幸的是,如果时间戳碰巧用整秒编码日期,则输出格式为"YYYY-MM-DDThh:mm:ss"(注意缺少的.sss")
如何"YYYY-MM-DDThh:mm:ss.sss"在JSON输出上一直强制使用ISO格式?
我为我的JavaScript SPA应用程序制作了一些测试代码.我为整个SPA设置了区域设置,假装在世界各地运行它.
现在,我设置了覆盖Date()类的getTimezoneOffset()函数的语言环境:
Date.prototype.getTimezoneOffset = function () { return 120 };
Run Code Online (Sandbox Code Playgroud)
它工作正常.
但是,在SPA的某些部分我使用的是MomentJS(由于标准DateTime库的某些限制).覆盖是否也会影响MomentJS区域设置?或不?
我需要为我的JavaScript单页面应用程序组织单元测试和端到端测试.我正在使用AngularJS Protractor/Cucumber进行e2e测试,使用Chai进行单元测试.
我有两个不同的文件夹(unit和e2e文件夹)中的e2e和单元测试,我目前没有利用页面对象设计模式.这些文件是非结构化的,不共享很多代码,所以我多次重复自己.
我认识到这种方法不会扩大规模
是否有最佳实践以这样的方式重新组织测试我编写最少量的代码,保持测试代码DRY?
我有一些Javascript代码,使IE11崩溃.如何找出有问题的代码?(函数名称,行号,堆栈跟踪,等等)
我看到的唯一选择是
使用VS2015进行调试
但这远远告诉我DLL(mshtml.dll)中引发异常的十六进制偏移量
那是VS2015的错误报告:
iexplore.exe中0x62E06A9C(mshtml.dll)的未处理异常:0xC0000005:访问冲突读取位置0x00000028.
我正在使用WiX为我的应用程序创建安装程序
我有这个片段,它描述了我的应用程序的目标安装文件夹:
<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="CommonAppDataFolder">
<Directory Id="Company" Name="myCompany">
<Directory Id="App" Name="myProgram">
<Directory Id="SQLGENERATORINSTALLFOLDER" Name="SqlLiteFolder" />
</Directory>
</Directory>
</Directory>
</Directory>
</Fragment>
Run Code Online (Sandbox Code Playgroud)
我也有一个自定义操作,该操作需要将[App]文件夹作为输入参数。如果我传递[App]到自定义操作,则期望文件夹的整个路径,从C:\一直到内部文件夹
我希望这样:
C:\ ProgramData \ myCompany \ myProgram \
相反,我得到这个:
C:\ Windows \ Installer \ MSI971.tmp-C:\ ProgramData \ myCompany \ myProgram \
看起来WiX会附加某种临时文件夹
编辑
这是将[App]变量传递给自定义操作的方式:
<CustomAction Id='GrantAccessToDatabase' BinaryKey='ActionLib' DllEntry='GrantAccess' Execute='deferred' Impersonate='no' />
<Property Id="GrantAccessToDatabase" Value="DbFilePath=[App]" />
Run Code Online (Sandbox Code Playgroud)
请注意,为了将变量传递给延迟的自定义动作,我需要使用该语法,在此说明-> 如何将参数传递给自定义动作?
那就是接收参数的C#部分:
[CustomAction]
public static ActionResult GrantAccess(Session session)
{
var data = session.CustomActionData;
var …Run Code Online (Sandbox Code Playgroud) 我有一个 SQL 数据库,我在其中存储用户和与用户关联的标签(多对多关系)。我有带有users表、tags表和“桥”表的经典模式,这些表usertag将用户与标签链接起来:
users table:
+---------+---------+
| Id | Name |
+---------+---------+
| 1 | Alice |
| 2 | Bob |
| 3 | Carl |
| 4 | David |
| 5 | Eve |
+---------+---------+
tags table:
+---------+---------+
| Id | Name |
+---------+---------+
| 10 | Red |
| 20 | Green |
| 30 | Blue |
+---------+---------+
usertag table:
+---------+---------+
| UserId | TagId |
+---------+---------+
| 2 …Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序,我正在使用Android模拟器来获取一些快照.
默认情况下,在没有电话框架的情况下捕获屏幕,如下所示:
但我想添加手机框,就像这样(我使用Mac内置屏幕截图捕获屏幕)
我怎样才能做到这一点?我可以使用Mac屏幕截图,但后来我将不得不裁剪图像,调整大小等等..等等..)
c# ×2
datetime ×2
javascript ×2
unit-testing ×2
6502 ×1
android ×1
angularjs ×1
assembly ×1
c++ ×1
crash ×1
date-format ×1
debugging ×1
e2e-testing ×1
emulation ×1
json ×1
memory-leaks ×1
momentjs ×1
moq ×1
mysql ×1
protractor ×1
sql ×1
tags ×1
testing ×1
timezone ×1
valgrind ×1
wix ×1
wix3.5 ×1