我目前在VS 2008中使用标准的Microsoft Unit Test套件.还安装了ReSharper 4.5.我的单元测试依赖于预加载数据文件的TestInitialize方法.此测试数据文件的路径将根据我是否使用标准Ctrl-R + Ctrl-T命令与Resharper单元测试执行命令从VS 2008中运行单元测试而有所不同.
我的TestInitialize方法如何知道单元测试数据文件的正确路径?
更新:
测试数据足够大,我不想将其推入字符串,所以更喜欢将其保存为外部文件.我的测试项目的文件结构是使用MVC应用程序创建的标准单元测试项目的文件结构.在测试项目的根目录下,创建了一个名为"测试数据"的新文件夹.这是我想要访问的文件夹,无论测试运行器如何.
我已经下载了WTL 8.0软件包并且找到了安装App Wizards不支持VS 2010的脚本.
有谁知道更新脚本以支持VS 2010中的安装?
谢谢!
我一直在阅读关于内存管理的苹果文档,现在对于推荐的Accessors实现感到有些困惑.Apple引用了3种实现访问器的方法.
技术1
我已经复制了第一种反映出来的技术的代码:"Getter在返回之前保留并自动释放值; setter释放旧值并保留(或复制)新值." 第一种技术被认为更加强大,但是经常被称为吸气剂会受到性能损失.
- (NSString*) title {
return [[title retain] autorelease];
}
- (void) setTitle: (NSString*) newTitle {
if (title != newTitle) {
[title release];
title = [newTitle retain]; // Or copy, depending on your needs.
}
}
Run Code Online (Sandbox Code Playgroud)
跳绳技术2
技术3
对于经常被称为setter和getter的人来说,第三种技术更好.这也是我一直遵循的方法.
- (NSString*) title {
return title;
}
- (void) setTitle: (NSString*) newTitle {
if (newTitle != title) {
[title release];
title = [newTitle retain]; // Or copy, depending on your needs.
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:
(技术1)即使不指向任何东西,setter也会首先释放现有值.这将向nil发送一条消息,我理解在Objective-C中支持但仍然看起来很奇怪.我理解正确吗?
(技术1)为什么保留堆叠在自动释放内?
(技术1)使用getter的调用者是否在完成对象后调用release? …
我正在Objective-C中编写一个方法,它返回一个基于NSMutableArray输入的字符串.我不打算让调用者修改字符串,但也不小心.该方法的当前签名读作:
- (NSMutableString *) generateString:(NSMutableArray *)myArray
Run Code Online (Sandbox Code Playgroud)
该项目目前是一个命令行基础工具,以学习绳索,但这最终将最终在iPhone应用程序中.
我的问题是:
2)当我返回NSMutableString时,我应该使用autorelease吗?如果你建议我返回一个NSString,它如何修改返回它?
3)如果我还想返回一个错误对象来识别是否发生了错误,可能是一个枚举和一个字符串,在这种情况下所有权是如何工作的?该方法不称为alloc,new或copy,所以调用者如何知道?除了上面方法中的字符串之外,我如何返回分配的错误对象?
谢谢!
cocoa memory-management objective-c nsstring nsmutablestring