如何对需要加载文件的功能进行单元测试

时间:2019-06-07 08:06:43

标签: c# testing nunit

我有一个类,该类具有接收xml文件并从磁盘加载xsd文件以生成html代码的功能。

我想构建一个单元测试,以发送XML进行什么测试。

问题在于单元测试和核心应用程序位于不同的文件夹中,因此主要功能由于相对路径不同而无法从磁盘加载xsd文件。

1 个答案:

答案 0 :(得分:0)

您可以更改代码,以便注入xsd。您还可以使用MS Fakes从测试代码中提供xsd。

如果您使用MS Fakes,则示例示例伪代码可能看起来像这样:

           {
       "_id" : ObjectId("5cf8fcac9f938484cb872ed2"),
       "projectId" : "pID92",
       "pageName" : "trail",
       "image" : "2e",
       "pageId" : "1",
       "objectName" : [ 
        {
        "objectName" : "demoPage",
        "attributes" : [ 
            {
                "locators" : "tagName",
                "value" : "p"
            }, 
            {
                "locators" : "className",
                "value" : "btnKeyEvent"
            }, 
            {
                "locators" : "id",
                "value" : "obj1"
            }, 
            {
                "locators" : "text",
                "value" : "Login"
            }
        ]

        "pomObject" : "newtrial1(driver).demo_1vij"
    }
]
}

如下所示,注入要简单一些,但是它确实需要更改代码以进行测试,并且使类的使用变得复杂:

    db.objectRepository.update({
    $and:[
    {pageName:'trail'},
    {'objectName.objectName':'demoPage'},
    {'objectName.attributes':{$elemMatch: {"locators": 'id', 
    "value": 'obj1'}}}
    ]},
     {"$set": { "objectName.0.attributes.2.value" : 'obj2'}})