小编JG *_* SD的帖子

无效构造函数参数的自动混合测试

我有以下课程和考试.我想测试将null值作为参数传递给构造函数并期待一个ArgumentNullException.但是因为我使用了Autofixture的CreateAnonymous方法,所以我得到了一个TargetInvocationException.

编写这些测试的正确方法是什么?

public sealed class CreateObject : Command {
    // Properties
    public ObjectId[] Ids { get; private set; }
    public ObjectTypeId ObjectType { get; private set; }
    public UserId CreatedBy { get; private set; }

    // Constructor
    public CreateObject(ObjectId[] ids, ObjectTypeId objectType, UserId createdBy) {
      Guard.NotNull(ids, "ids");
      Guard.NotNull(objectType, "objectType");
      Guard.NotNull(createdBy, "createdBy");

      Ids = ids;
      ObjectType = objectType;
      CreatedBy = createdBy;
    }
}

[TestMethod]
[ExpectedException(typeof(ArgumentNullException))]
public void constructor_with_null_ids_throw() {
    fixture.Register<ObjectId[]>(() => null);
    fixture.CreateAnonymous<CreateObject>();
}
Run Code Online (Sandbox Code Playgroud)

autofixture

11
推荐指数
1
解决办法
1257
查看次数

如何在每个类测试后运行ClassCleanup(MSTest)?

我有几个带有测试套件的课程.

每个测试类都从ClassInitialize开始,并由ClassCleanup完成.我的问题是ClassCleanup没有在每个类的末尾调用,只有在三个类中的所有测试之后才调用它.我能解决这个问题吗?谢谢!

[ClassInitialize]
public static void SetUpBrowser(TestContext context)
{
    pageObjectBase.SetBrowser("chrome");
    pagesManager.GetPageObjectBase();
}

[TestMethod]
public void FindCriticalBug()
{
    bla-bla-bla();
}

[ClassCleanup]
public static void CloseBrowser()
{
    pageObjectBase.Stop();
    pagesManager.GeneralClearing();
}
Run Code Online (Sandbox Code Playgroud)

.net c# mstest

10
推荐指数
3
解决办法
2万
查看次数

二进制流'0'在反序列化时不包含有效的BinaryHeader错误

在过去2天搜索到这个问题的答案后,我希望有人可以提供帮助.

我使用VS2012在c#中编写了一个程序,它使用BinaryFormatter保存用户的项目数据,将序列化类序列化为Stream,然后将其保存到文件中.该程序已经使用了一段时间,但是最近用户无法打开他前一天保存的文件.他把文件发给我了,我在degugger中得到的错误是:

"二进制流'0'不包含有效的BinaryHeader.可能的原因是序列化和反序列化之间无效的流或对象版本更改."

鉴于用户在前一天保存了数据,序列化和反序列化之间的基础对象结构或格式没有变化.

之前没有出现过这个问题,导致我认为它必须是非常间歇性的,因此序列化和反序列化的对象没有明显的问题.

我的问题是:

我对这个错误的理解是序列化数据的格式与被反序列化的对象的格式不匹配.它是否正确?还有其他原因吗?

如果是这样,可能导致这种间歇性错误的原因是什么?

有没有办法从这个文件中检索数据,即使BinaryFormatter不认为它的格式正确?

有更安全的方法来保存和加载数据吗?我已经看到XmlFormatter似乎是一个更好的选择,但是这将如何帮助确保保存和调用的数据的完整性?

如果有帮助,我用来序列化/反序列化的代码如下:

//serialize

SEProjectData serializedProject = serializeProjectData();

Stream stream = File.Open(saveFileDialog1.FileName, FileMode.Create);
BinaryFormatter bFormatter = new BinaryFormatter();
bFormatter.Serialize(stream, serializedProject);
stream.Close();

//deserialize

Stream stream = File.Open(path, FileMode.Open);
BinaryFormatter bFormatter = new BinaryFormatter();

stream.Seek(0, SeekOrigin.Begin);

SEProjectData projectData = (SEProjectData)bFormatter.Deserialize(stream);
stream.Close();
Run Code Online (Sandbox Code Playgroud)

c# binaryformatter deserialization

5
推荐指数
1
解决办法
1万
查看次数

Google协议缓冲区 - protobuf-net反序列化无法正常工作

我遇到了成功反序列化已使用预编译的protobuff序列化程序类序列化的字节数组的困难ModelSerializer.使用它,我定义的数据模型中的类的序列化和反序列化MyData在我序列化到文件并从文件反序列化时起作用MyData.

但是,我有另一个要求,即序列化为MyData字节数组,并将字节数组反序列化为MyData.下面是调用的基本类MyDataConverter,它有2个静态方法,一个用于转换MyData为字节数组,另一个用于转换字节数组MyData.

我可以MyData成功序列化到一个字节数组并将其写入MemoryStream.但是,当我反序列化字节数组时,我确实获得了一个非空实例MyData,但其中的所有数据都丢失了(默认null值为零,或者自定义类型的值).

我可以在这里出错吗?请注意,我确实使用类似的代码成功序列化到文件并从文件反序列化,所以它可能不是MyModel或预编译的ModelSerializer的错误.但如果有必要,我可以在这里粘贴一些信息.

public class MyDataConverter
{
    public static byte [] MyDataToBytes (MyData myData)
    {
        MemoryStream stream = new MemoryStream();
        ModelSerializer serializer = new ModelSerializer();

        serializer.Serialize (stream, myData);
        byte [] bytes = stream.ToArray();
        Stream.Close();

        return bytes;
    }

    public static MyData BytesToMyData (byte [] bytes)
    {
        MyData myData = null;

        MemoryStream stream = new MemoryStream();
        stream.Write …
Run Code Online (Sandbox Code Playgroud)

c# serialization protocol-buffers protobuf-net

4
推荐指数
1
解决办法
3909
查看次数

IIS 回收时正在运行的任务会发生什么

为了帮助提高客户端的性能,我将请求的处理卸载到任务上。这样做是因为处理通常需要一些时间,而且我不希望客户端为了获得 200 响应而等待一段时间。将工作卸载到任务上的 Web 服务始终在处理帖子。

public void ProcessRequest(HttpContext context)
{
    // check for bad requests -- return 400

    // get copy of the context input stream

    Task.Factory.StartNew(() =>
    {
        ProcessRequest(contextInputStreamCopy);
    });
}

private void ProcessRequest(Stream inputStream)
{
    try
    {
        // process input stream
    }
    catch(Exception ex)
    {
        // any server error that would normally result in 500 response are not
        // exposed to the clients, the clients are to see 200 when the server 
        // encounters an error
    }
} …
Run Code Online (Sandbox Code Playgroud)

c# asp.net iis iis-7.5 c#-4.0

3
推荐指数
2
解决办法
1969
查看次数

使用O(1)空间复杂度对O(n log n)中的链表进行排序

这是LeetCode上的排序列表问题https://oj.leetcode.com/problems/sort-list/ 我制作了一个Java解决方案,但它导致超长测试用例超出时间限制.而且我在代码中找不到错误.谁能指出这个bug在哪里?非常感谢.

class ListNode {
    int val;
    ListNode next;
    ListNode(int x) {
        val = x;
        next = null;
    }
}

public class Solution {
    public ListNode sortList(ListNode head) {
        return this.sortPart(head, null);
    }

    private ListNode sortPart(ListNode start, ListNode end){
        if(start == null)return null;
        if(start == end)return start; 

        ListNode l=start, r=start, p=start.next;

        while(p!= null && p!=end){
            if(p.val < start.val){ // current node less than start node
                r.next = p.next;
                p.next = l;
                l = p; // set current node as …
Run Code Online (Sandbox Code Playgroud)

java sorting algorithm linked-list time-complexity

0
推荐指数
1
解决办法
2163
查看次数

语法附近的SQL错误除外

我正在尝试选择在该市所有分支机构拥有帐户的人.(使用SQL查询)

SELECT A.customId 
FROM accountholder as A 
WHERE NOT EXISTS ( 
                   (SELECT name 
                    FROM branch 
                    WHERE city='LA') 
EXCEPT (SELECT C.branch 
        FROM accountholder AS B, account AS C 
        WHERE B.accountnumber = C.accountnumber 
              AND A.customId = B.customId)); 
Run Code Online (Sandbox Code Playgroud)

现在我得到了:

错误1064(42000):您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在'EXCEPT附近使用正确的语法(在第1行选择C.branch FROM accountholder AS B,account AS C WHERE B.accountnumber ='

我没有看到问题.我是盲目还是愚蠢?

感谢帮助.

mysql sql database mysql-error-1064

0
推荐指数
1
解决办法
2279
查看次数

不理解遗漏的退货声明

我是Java新手.我正在进行一个小程序实践并且缺少return语句错误.

有人可以帮忙吗?

import java.util.Scanner;
class nonstatic1
{
    public static void main(String[] args)
    {
        // this method works 
        nonstatic2 Ref=new nonstatic2(); 
        int Addition=Ref.add();           
        System.out.println (Addition);     

         String email=email();

    }
       // the one below is the one that does not work and gives me the error
    public static String email()
    {
        Scanner in=new Scanner(System.in);
        System.out.println("Enter Your email Address");
        String email=in.nextLine();

        if(email.endsWith(".sc"))
          return email;
    }
}
Run Code Online (Sandbox Code Playgroud)

java

0
推荐指数
1
解决办法
124
查看次数

JS解释中的简写

有人可以向我解释这个JS速记代码:

   navigator.sayswho = (function(){
      var N= navigator.appName, ua= navigator.userAgent, tem;
      var M= ua.match(/(opera|chrome|safari|firefox|msie|Trident)\/?\s*(\.?\d+(\.\d+)*)/i);
      if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];
      M= M? [M[1], M[2]]: [N, navigator.appVersion,'-?'];
      return M;
   })();
Run Code Online (Sandbox Code Playgroud)

代码正在运行,但我无法理解它是如何工作的,尤其是这一行:

M= M? [M[1], M[2]]: [N, navigator.appVersion,'-?'];
Run Code Online (Sandbox Code Playgroud)

javascript shorthand

-2
推荐指数
1
解决办法
72
查看次数