gpt4 book ai didi

c# - 单元测试基于 umbraco 的网站

转载 作者:行者123 更新时间:2023-11-30 17:09:51 24 4
gpt4 key购买 nike

有没有一种方法可以测试依赖于 umbraco 的代码。即在我的模型中,我正在调用 getNode 或使用 uquery 来获取节点,但我无法测试这些类,因为它们依赖于 umbraco...

我想解决这个问题的一种方法是模拟,但是你如何模拟 uquery 或 nodefactory?

最佳答案

我不相信 CMS 系统天生就适合单元测试,因为输出并不总是像业务逻辑那样简单明了。

但是(总有一个但是)您可以模拟节点的生成 - 操纵它们并至少检查错误。一个示例单元测试是创建一个包含一些必填字段和一些可选字段的文档类型——然后仅在使可选字段成为必填字段之前用必填字段填充内容节点——这应该会出错。不过,我认为您不能通过代码将属性添加为强制属性。

(另见: How to add a property to a document type in Umbraco from code? http://our.umbraco.org/wiki/reference/api-cheatsheet/creating-a-document http://our.umbraco.org/wiki/how-tos/working-with-document-types)

类似于:

var alias = "aliasOfOptionalField";
var value = string.Empty;
var docType = "Textpage";

DocumentType dt = DocumentType.GetByAlias(docType);
User author = User.GetUser(0);
Document doc = Document.MakeNew("My new document", dt, author, 1018);
doc.Publish(author);
umbraco.library.UpdateDocumentCache(doc.Id);

var newProperty = dt.AddPropertyType(new DataTypeDefinition(-49), alias, "test prop");

if (doc.HasProperty(alias))
{
doc.getProperty(alias).Value = value;
doc.Publish(new User(0));
library.UpdateDocumentCache(doc.Id);
}

关于c# - 单元测试基于 umbraco 的网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12476209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com