2014-05-08 70 views
3

我正在尝试用Parse.com开发一个类库。带解析的类库抛出错误

我已经创建了一个空的,干净的类库,然后使用的NuGet,加入Newtonsoft.Json,解析和Parse.NetFx45

我已经加入从Parse.com网站采取了一个简单的“Hello World”功能并在类库中创建了一个函数。

这里是我的功能:

public async static void testParse() 
{ 
    ParseClient.Initialize("MyApplicatonID", "My.NetKey"); 

    var testObject = new ParseObject("TestObject"); 
    testObject["foo"] = "bar"; 
    await testObject.SaveAsync(); 
} 

然后我添加了一个单元测试项目,引用我的类库和书面测试如下:

[TestMethod] 
public void TestParse() 
{ 
    Experior.ParseFunctions.testParse(); 
} 

当我运行测试,它抛出在​​3210行处出现以下错误:

System.TypeInitializationException未处理消息: 类型'System.TypeInitializationException'的异常发生在 mscorlib.dll附加信息: 'Parse.ParseClient'的类型初始值设定项引发异常。

我没有我读表明解析不喜欢被包裹在一个类库线程的一些摸索一个...

所以,我想,我会在测试相同的代码Windows Forms项目并从一个简单的按钮调用代码。

它完美的工作!

任何人都可以看到我做错了什么或建议什么问题可以请吗?

任何提示/技巧将不胜感激!

+0

哪行代码会引发异常? – Tarec

+0

@Tarec“当我运行测试时,它会在ParseClient.Initialize中引发以下错误” –

+2

删除异步并检查行为(如果存在,则需要调用'Save'而不是'SaveAsync'或手动等待完成)。例如,nUnit有能力创建异步测试以便正确执行异步方法,而且无论如何您都需要等待'testParse'。或者将您的测试签名更改为'public async void TestParse()',并且不要忘记等待。 – Samuel

回答

0

感谢@Samuel我已经修改了我的代码如下:

using Parse; 
using System.Threading.Tasks; 

namespace ExperiorWrapper 
{ 
public class ParseFunctions 
{ 
    public static async Task testParse() 
    { 
     ParseClient.Initialize("xxxx", "xxxx"); 

     var testObject = new ParseObject("TestObject"); 
     testObject["foo"] = "bar"; 
     await testObject.SaveAsync(); 
    } 
} 
} 

现在的测试看起来是这样的:

[TestMethod] 
    public async Task TestParse() 
    { 
     await ParseFunctions.testParse(); 
    } 

我绊倒了对其他重要的事情是Newtonsoft .Json,Parse和Parse.NetFx45 HAD被添加为测试项目的参考,以使其工作...

HTH