我有以下课程和考试.我想测试将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) 我有几个带有测试套件的课程.
每个测试类都从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) 在过去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) 我遇到了成功反序列化已使用预编译的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) 为了帮助提高客户端的性能,我将请求的处理卸载到任务上。这样做是因为处理通常需要一些时间,而且我不希望客户端为了获得 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) 这是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) 我正在尝试选择在该市所有分支机构拥有帐户的人.(使用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 ='
我没有看到问题.我是盲目还是愚蠢?
感谢帮助.
我是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) 有人可以向我解释这个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) c# ×4
java ×2
.net ×1
algorithm ×1
asp.net ×1
autofixture ×1
c#-4.0 ×1
database ×1
iis ×1
iis-7.5 ×1
javascript ×1
linked-list ×1
mstest ×1
mysql ×1
protobuf-net ×1
shorthand ×1
sorting ×1
sql ×1