小编Eya*_*nik的帖子

让TypeScript,Karma,RequireJS和Chai一起工作的问题

我正在尝试使用TypeScript重写我的一个项目,因为我对TypeScript和RequireJS很新,我不确定我缺少什么.

我遵循了本指南Karma - RequireJS并仔细检查了所有内容,但我还没有设法让它至少不是RequireJS.

PS我得到的错误是在帖子的最后.

我正在为这个项目使用的目录结构如下:

.
|-- WebEssentials-Settings.json
|-- build
|-- jake.sh
|-- jakefile.js
|-- node_modules
|   |-- chai
|   |   |-- CONTRIBUTING.md
|   |   |-- History.md
|   |   |-- README.md
|   |   |-- ReleaseNotes.md
|   |   |-- bower.json
|   |   |-- chai.js
|   |   |-- index.js
|   |   |-- karma.conf.js
|   |   |-- karma.sauce.js
|   |   |-- lib
|   |   |-- node_modules
|   |   |-- package.json
|   |   `-- sauce.browsers.js
|   |-- jake
|   |   |-- …
Run Code Online (Sandbox Code Playgroud)

javascript requirejs typescript karma-runner

2
推荐指数
1
解决办法
6192
查看次数

获取执行脚本的当前目录,而不是脚本的当前执行目录

我想获取执行脚本的当前目录,而不是脚本的当前执行目录。

该脚本位于 'd:\projects\code\development.tools' 中,我想要位于 'd:\projects\code\development\ace\ace.testing' 中的项目目录

现在,当我在 Psake Properties 之外执行“Write-Host $Env:PWD”或“$Env:PWD”时,我实际上得到了我想要的东西,但是当我尝试从 Properties 中获取它时,它会返回什么$PWD 返回,这是脚本的执行目录。

Write-Host $Env:PWD # returns d:\projects\code\development\ace\ace.testing

Properties {
    $baseDir = $Env:PWD # returns d:\projects\code\development\.tools
}
Run Code Online (Sandbox Code Playgroud)

我不确定这里发生了什么,但我无法弄清楚。

我试图将正确的路径存储在一个变量中,但它并没有真正起作用。

更新:

花了几个小时后,我意识到它确实有效!我正在断断续续地编写该脚本,并在某处放置了一个 throw 语句,却忘记了它在那里!所以我认为 Psake 正在做一些奇怪的事情,因此它不起作用,但是 Psake 是纯粹的!;)

因此,如果您想获取正在执行脚本的当前目录 $Env:PWD 似乎可以做到!:)

powershell psake

2
推荐指数
1
解决办法
9161
查看次数

将 JavaScript 文件嵌入到 Blazor 项目的 .NET 类库中

我正在开发一个 Blazor 项目,并尝试将其中一个 JavaScript 文件移动到类库,我已阅读以下指南:

  1. https://learn.microsoft.com/en-us/aspnet/core/razor-pages/ui-class?view=aspnetcore-6.0&tabs=visual-studio#consume-content-from-a-referenced-rcl-1
  2. https://learn.microsoft.com/en-us/aspnet/core/blazor/javascript-interoperability/?view=aspnetcore-6.0#load-a-script-from-an-external-javascript-file-js
  3. https://learn.microsoft.com/en-us/aspnet/core/blazor/javascript-interoperability/call-javascript-from-dotnet?view=aspnetcore-6.0#javascript-isolation-in-javascript-modules

我收到以下错误:

浏览器开发者工具

我不确定我缺少什么或者我需要做什么才能让它工作,所以这是我的设置:

事实:

  1. 我在用着.NET 6
  2. 我正在使用 Visual Studio for Mac Version 17.0 Preview (17.0 build 8754)
  3. 解决方案的名称是LinkScreen
  4. 应用项目的名称是Client.Web
  5. 应用程序程序集的名称是LinkScreen.Client.Web
  6. 应用程序默认命名空间的名称是LinkScreen.Client.Web
  7. 该应用程序的托管模型是 Web Assembly。
  8. 类库项目的名称是Client.BrowserInterop
  9. 类库程序集的名称是LinkScreen.Client.BrowserInterop
  10. 类库默认命名空间的名称是LinkScreen.Client.BrowserInterop

项目结构及代码

  1. 在类库中,我有一个screen-capture.js在以下目录下调用的脚本文件wwwroot\scripts,如下所示:

在此输入图像描述

其构建操作设置为“内容”,并将复制到输出目录设置为“不复制”。

  1. 类库像这样引用应用程序:

在此输入图像描述

  1. 我有一个名为的 C# 类ScreenCapture,它包装了 JavaScript 模块,screen-capture.js并返回引用,如下所示:
public static async ValueTask<ScreenCapture> CreateAsync(
        IJSRuntime jsRuntime,
        ElementReference videoTagReference)
    {
        var jsModuleRef …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core blazor blazor-webassembly

2
推荐指数
1
解决办法
4279
查看次数

AutoFixture 新手,试图了解它,但我看不到它对我有帮助

目前,我正在使用定制的假对象,这些对象在幕后使用 NSubstitute 创建实际对象,但随着项目的发展,它变得非常难以维护,所以我正在尝试寻找替代方案,我希望 AutoFixture 是适合这项工作的工具。

我阅读了文档,但我很挣扎,因为文档很少甚至没有,而且我阅读了 Mark Seemann 的大部分博客文章,包括 CheatSheet。

我很难掌握的一件事是如何使用带有参数的构造函数创建一个对象,在我的例子中,我需要将参数传递给 CsEmbeddedRazorViewEngine 以及将 HttpRequestBase 传递给 ControllerContext。

我的看法是,我需要创建一个假对象,最后创建一个将它们注入到的自定义对象

我还研究了 NBuilder,在那里传递参数似乎稍微微不足道,但我听说过有关 AutoFixture 的好消息,我想尝试一下。:)

我正在尝试减少假物体的数量,所以这是一个真正的测试,我如何使用 AutoFixture 做同样的事情?

[Theory, 
 InlineData("en-US"), 
 InlineData("en-us"), 
 InlineData("en")]
public void Should_return_the_default_path_of_the_view_for_enUS(string language)
{
    // Arrange
    const string EXPECTED_VIEW_PATH = "~/MyAssemblyName/Views/Home/Index.cshtml";

    CsEmbeddedRazorViewEngine engine = CsEmbeddedRazorViewEngineFactory.Create(ASSEMBLY_NAME, VIEW_PATH, string.Empty);

    string[] userLanguage = { language };

    HttpRequestBase request = FakeHttpRequestFactory.Create(userLanguage);

    ControllerContext controllerContext = FakeControllerContextFactory.Create(request);

    // Act
    ViewEngineResult result = engine.FindPartialView(controllerContext, VIEW_NAME, false);

    // Assert
    RazorView razorView = (RazorView)result.View;

    string actualViewPath = razorView.ViewPath;

    actualViewPath.Should().Be(EXPECTED_VIEW_PATH);
} …
Run Code Online (Sandbox Code Playgroud)

autofixture

1
推荐指数
1
解决办法
793
查看次数