如何在作为 NUnit TestCase 参数时转义双引号?

41

我尝试为一个用VB.net编写的NUnit测试编写以下TestCase:

<TestCase("FirstNode", "<node id=\"FirstNode\">")>
Public Sub GetNode_GivenSomeNodeId_ReturnCorrectNode(ByVal nodeId as String, 
                                            ByVal expectedXml as String)

    (Call the method under test and request the xmlNode with the provided id...)

    Assert.AreEqual(expectedXml, returnedXml)
End Sub

传递给测试用例的第二个参数的xml节点无效,因为这显然不是正确的转义双引号的方式。我确定我可以找到一种解决方法来检查被测试方法是否返回了预期的XML节点,但我很好奇:

有没有一种聪明的方式将包含双引号的字符串作为参数传递给NUnit测试?

1个回答

74

在VB中正确转义双引号的方法是将双引号重复两次:

<TestCase("FirstNode", "<node id=""FirstNode"">")>

4
实际上,我觉得这很奇怪。在引号中添加一个加号时的差别显然很大,这种做法似乎不合逻辑。但再说,VB.NET 中有更多不合逻辑的东西。 - Daniël Tulp
1
或者使用 Chr(34) 如下所示:<TestCase(Chr(34)FirstNodeChr(34), Chr(34)<node id=Chr(34)FirstNodeChr(34)>Chr(34)")> - Fuzzybear
@Fuzzybear - 谢谢,让我回想起 Spectravideo MSX 上的 BASIC。 - Prof. Falken

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接