我对C#中的单元测试相当新,并且学习使用Moq.以下是我要测试的课程.
class MyClass
{
SomeClass someClass;
public MyClass(SomeClass someClass)
{
this.someClass = someClass;
}
public void MyMethod(string method)
{
method = "test"
someClass.DoSomething(method);
}
}
class Someclass
{
public DoSomething(string method)
{
// do something...
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我的TestClass:
class MyClassTest
{
[TestMethod()]
public void MyMethodTest()
{
string action="test";
Mock<SomeClass> mockSomeClass = new Mock<SomeClass>();
mockSomeClass.SetUp(a => a.DoSomething(action));
MyClass myClass = new MyClass(mockSomeClass.Object);
myClass.MyMethod(action);
mockSomeClass.Verify(v => v.DoSomething(It.IsAny<string>()));
}
}
Run Code Online (Sandbox Code Playgroud)
我得到以下异常:
Expected invocation on the mock at least once, but was never performed …
Run Code Online (Sandbox Code Playgroud) 我试图逐步解析JSON,即基于条件.
下面是我的json消息,我目前正在使用JavaScriptSerializer来反序列化消息.
string json = @"{"id":2,
"method":"add",
"params":
{"object":
{"name":"test"
"id":"1"},
"position":"1"}
}";
JavaScriptSerializer js = new JavaScriptSerializer();
Message m = js.Deserialize<Message>(json);
Run Code Online (Sandbox Code Playgroud)
消息类如下所示:
public class Message
{
public string id { get; set; }
public string method { get; set; }
public Params @params { get; set; }
public string position { get; set; }
}
public class Params
{
public string name { get; set; }
public string id{ get; set;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码解析消息没有问题.但它会立即解析整个JSON.我希望它仅在"method"参数的值为"add"时才进行解析.如果它不是"添加",那么我不希望它继续解析其余的消息.有没有办法根据C#中的条件进行增量解析?(环境:VS 2008与.Net 3.5)
当我在添加自己的框架后尝试构建项目时,我在Xcode 4.5.1中遇到"重复符号"错误.我验证了重复项的框架文件,但没有.但是当我将框架添加到项目中时,它会抱怨这些错误.请建议..
duplicate symbol _NXArgc in:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/crt1.3.1.o
/Users/idcc/Test/MyFW/Products/MyTestFW.framework/MyTestFW
duplicate symbol _NXArgv in:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/crt1.3.1.o
/Users/idcc/Test/MyFW/Products/MyTestFW.framework/MyTestFW
duplicate symbol ___progname in:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/crt1.3.1.o
/Users/idcc/Test/MyFW/Products/MyTestFW.framework/MyTestFW
duplicate symbol _environ in:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/crt1.3.1.o
/Users/idcc/Test/MyFW/Products/MyTestFW.framework/MyTestFW
duplicate symbol start in:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/crt1.3.1.o
/Users/idcc/Test/MyFW/Products/MyTestFW.framework/MyTestFW
ld: 8 duplicate symbols for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
提前致谢..
我有几个dll文件,分别安装/卸载Windows安装程序时需要注册/注销。
我尝试了以下操作-创建一个.bat文件来注册dll。问题是我无法在安装项目中使用“自定义操作”添加.bat文件。
另外,如何在卸载时运行DLL注销?请指教。谢谢。
我需要创建一个单一的Windows安装程序,当它在目标m/c上运行时执行以下任务:
C:\Windows\sysWoW64
文件夹和存储中存储32位和64位log4cxx.dll库C:\Windows\system32
目前,我正在使用WiX创建一个安装程序,我现在可以注册32位或64位安装程序但不能同时注册.不幸的是,我没有选择分离32位和64位安装程序,因为我需要在64位计算机上注册这两个安装程序.
我想知道是否有办法在一个安装程序中注册这两个DLL.提前致谢.
我正在尝试在企业中开发和分发iOS应用程序.我在iOS文档中遇到过这个问题 - 部署iPhone和iPad MDM.在本文中,它指定可以无线方式执行OTA注册(下面引用的行).这是第一次真的有可能吗?MDM服务器如何无线推送到设备 - 这是第一次?它提到它可以使用应用程序或门户网站完成.这是否意味着应用程序将设备凭据(如UDID)发送到MDM服务器进行注册?如果有人为iOS设备执行了OTA注册,请分享详细信息.提前致谢.
注册
配置移动设备管理服务器和网络后,管理iPhone或iPad的第一步是将其注册到MDM服务器.这在设备和服务器之间创建了一种关系,允许按需管理它而无需进一步的用户交互.
这可以通过USB将iPhone或iPad连接到计算机来完成,但大多数解决方案都通过无线方式提供注册配置文件.一些MDM供应商使用应用程序启动此过程,其他供应商通过将用户定向到Web门户来启动注册.每种方法都有其优点,两者都用于通过Safari触发无线注册过程.