我喜欢ReSharper 4.5中的单元测试运行器,并希望将它用于我的MSTest测试,但有一件事让我烦恼:
在我们的一些解决方案中,我们在.testrunconfig文件中设置了一些部署项.ReSharper单元测试运行器似乎不尊重这一点,因此在尝试从ReSharper运行单元测试时出现错误.
这有什么工作作品吗?
更新:
citizenmatt的回答是正确的,在ReSharper的Options对话框中存在使用.strunconfig和ReSharper的选项.您必须在列表中选择单元测试提供程序,然后出现执行该操作的控件.(这不明显或不可发现,至少不适合我;-)
在编码标准文件中,我发现了这样的声明:
避免使用foreach迭代不可变的值类型集合.例如字符串数组.
为什么要避免这种情况?
当我声明一个属性时,我可以在声明中放入各种属性,这对编译器有特殊意义:
@property (nonatomic, retain) NSNumber *consumption;
Run Code Online (Sandbox Code Playgroud)
在这里,nonatomic和retain是属性.是否可以添加自定义属性,并能够在运行时检查此属性的存在性?例如:
@property (nonatomic, retain, test) NSNumber* consumption;
Run Code Online (Sandbox Code Playgroud)
我基本上使用的构造可以替换属性的使用,因为我从C#/ .NET中知道它们 - 因此也欢迎其他建议.
我需要使用Castle DynamicProxy通过向ProxyGenerator.CreateInterfaceProxyWithTarget提供它的实例来代理接口.我还需要确保调用Equals,GetHashCode和ToString命中具体实例上的方法,我正在传递,而我无法使其工作.
换句话说,我想要这个小样本打印True两次,而实际上它打印True,False:
using System;
using Castle.Core.Interceptor;
using Castle.DynamicProxy;
public interface IDummy
{
string Name { get; set; }
}
class Dummy : IDummy
{
public string Name { get; set; }
public bool Equals(IDummy other)
{
if (ReferenceEquals(null, other)) return false;
if (ReferenceEquals(this, other)) return true;
return Equals(other.Name, Name);
}
public override bool Equals(object obj)
{
return Equals(obj as IDummy);
}
}
class Program
{
static void Main(string[] args)
{
var g = new ProxyGenerator(); …Run Code Online (Sandbox Code Playgroud) iOS6为iOS6设备推出了IDFA"广告标识符".
可以从iOS6设备上的Safari中运行的Javascript中检索此ID吗?或者它是仅限应用程序的功能?
ReSharper有一个"Check parameter for null"上下文操作,它将自动插入代码以检查null参数,如果为null则抛出ArgumentNullException.
如果参数是一个字符串,我想要另一个选项:"检查字符串是否为空或空".这应该生成类似于这样的代码:
if (String.IsNullOrEmpty(result))
throw new ArgumentException("Parameter cannot be null or empty", "result");
Run Code Online (Sandbox Code Playgroud)
有没有办法轻松地将它添加到ReSharper?
我试图在NHibernate中映射一个实体,它应该有一个更新的列.这应该是实体最后写入数据库(创建或更新)时的DateTime.我希望NHibernate能够控制列的更新,所以我不需要记得在更新之前将属性设置为当前时间.
NHibernate中是否有内置功能,可以为我处理这个问题?
我正在玩Swift,并将这段代码放在操场上
class Foo {
let value: String
init(value: String!)
{
self.value = value
}
}
let x : String? = nil
let foo = Foo(value: x)
Run Code Online (Sandbox Code Playgroud)
底线应该在初始化器中抛出异常,因为我打开x它是零.但是,我无法看到异常消息或运行时发生错误的事实.如果我在下面添加代码,它就不会运行(没有显示输出).
如何在Swift游乐场中看到运行时抛出的异常?
我们旧的TFS 2008安装已经过时了,我们希望迁移到TFS 2010.但是,我们团队项目的结构没有经过深思熟虑,并且已经进行了各种实验,包括流程模板和工作项的编辑等等.上.
因此,我想将源代码迁移到具有完整历史记录的TFS 2010,并尽可能保持新TFS 2010安装的所有其他方面.我怎样才能做到这一点 ?
tfs2008 visual-studio-2010 tfs-to-tfs-migration-tool visual-studio-2008 tfs2010
考虑这个有效的代码(loginWithEmail方法得到预期的,好的,预期的):
_authenticationService = [[OCMockObject mockForClass:[AuthenticationService class]] retain];
[[_authenticationService expect] loginWithEmail:[OCMArg any] andPassword:[OCMArg any]];
Run Code Online (Sandbox Code Playgroud)
与此代码对比:
_authenticationService = [[OCMockObject mockForProtocol:@protocol(AuthenticationServiceProtocol)] retain];
[[_authenticationService expect] loginWithEmail:[OCMArg any] andPassword:[OCMArg any]];
Run Code Online (Sandbox Code Playgroud)
第二个代码示例在第2行失败,出现以下错误:
*** -[NSProxy doesNotRecognizeSelector:loginWithEmail:andPassword:] called! Unknown.m:0: error: -[MigratorTest methodRedacted] : ***
-[NSProxy doesNotRecognizeSelector:loginWithEmail:andPassword:] called!
Run Code Online (Sandbox Code Playgroud)
AuthenticationServiceProtocol声明方法:
@protocol AuthenticationServiceProtocol <NSObject>
@property (nonatomic, retain) id<AuthenticationDelegate> authenticationDelegate;
- (void)loginWithEmail:(NSString *)email andPassword:(NSString *)password;
- (void)logout;
- (void)refreshToken;
@end
Run Code Online (Sandbox Code Playgroud)
它在课堂上实现:
@interface AuthenticationService : NSObject <AuthenticationServiceProtocol>
Run Code Online (Sandbox Code Playgroud)
这是使用OCMock for iOS.
expect当模拟是一个时,为什么会失败mockForProtocol?
c# ×3
.net ×2
ios ×2
objective-c ×2
resharper ×2
castle ×1
javascript ×1
mocking ×1
nhibernate ×1
ocmock ×1
safari ×1
swift ×1
tfs2008 ×1
tfs2010 ×1
unit-testing ×1
xcode6 ×1