我构建了一个WCF服务,并且有一个看起来像这样的部分:
[ServiceContract]
public class Service {
[OperationContract]
public SomethingElse[] Method(Code a, params Something[] b) { ... }
}
[DataContract]
public class Something {
[DataMember]
public string Stuff {get;set;}
[DataMember]
public Status MyStatus {get;set;}
public string ServerSideField {get;set;}
}
[DataContract]
public class SomethingElse {
[DataMember]
public Status MyStatus {get;set;}
}
[DataContract]
public enum Status {
[EnumMember] WorksFine,
[EnumMember] NotWorking
}
[DataContract]
public enum Code {
[EnumMember] TypeA,
[EnumMember] TypeB
}
Run Code Online (Sandbox Code Playgroud)
现在我将它用作C#客户端的服务参考.出于某种原因,每当我调用时Method,参数MyStatus内的属性b总是设置为WorksFine,即使我将其设置为NotWorking.在另一方面,每当我经过 …
在C#你能赶上在默认的测试套件像这样的例外:
[TestMethod]
[ExpectedException(typeof (ArgumentNullException))]
public void TestNullComposite()
{
IApi api = new Api();
api.GetDataUsingDataContract(null); // this method throws ArgumentNullException
}
Run Code Online (Sandbox Code Playgroud)
但是,当您分析代码覆盖率时,它表示您只获得66.67%的覆盖率,因为最后一个大括号未被覆盖.
我如何才能在单元测试中实现100%的覆盖率?
我正在尝试使用Oracle VirtualBox配置Android x86运行机器,以便它可以与Eclipse一起使用.我在使我的虚拟机"在线"时遇到了一些麻烦.我在Android终端模拟器中键入以下内容,将手机连接到adb:
ifconfig eth0 192.168.40.1 netmask 255.255.255.0
route add default gw 192.168.40.1 dev eth0
Run Code Online (Sandbox Code Playgroud)
之后,我切换到cmd并键入adb connect localhost
但是当我尝试在虚拟Android上使用Eclipse运行我的测试代码时,它不会出现在Android设备选择器菜单中.此外,当我输入adb devicescmd时,这是响应:
List of devices attached
localhost:5555 offline
Run Code Online (Sandbox Code Playgroud)
让我担心的另一件事是,每次关闭VM后,我必须在重新启动时再次在终端中输入ifconfig和route add命令,以便连接到设备.
如何使设备联机?
编辑: 如果重要,VM配置为通过NAT网络进行通信.这是我的端口转发规则的样子:协议:TCP
主机IP:*
主机端口:5555
访客IP:*
宾客港口:5555
EDIT2 相关问题:错误:设备离线
EDIT3:潜在的解决方案:Android设备选择器 - 我的设备似乎离线