小编fer*_*res的帖子

Mock DbContext.set <T> .Add()EF6

我有以下类(其中PilsnerContext是DbContext类):

public abstract class ServiceBase<T> : IService<T> where T: class, IEntity
{
    protected readonly PilsnerContext Context;

    protected ServiceBase(PilsnerContext context)
    {
        Context = context;
    }

    public virtual T Add(T entity)
    {
        var newEntity = Context.Set<T>().Add(entity);
        Context.SaveChanges();
        return newEntity;
    }
}

public class ProspectsService : ServiceBase<Prospect>
{
    public ProspectsService(PilsnerContext context) : base(context){}

}
Run Code Online (Sandbox Code Playgroud)

我正在尝试对Add方法进行单元测试,模拟上下文,如:

[TestClass]
public class ProspectTest
{
    [TestMethod]
    public void AddProspect()
    {
        var mockProspect = new Mock<DbSet<Prospect>>();
        var mockContext = new Mock<PilsnerContext>();

        mockContext.Setup(m => m.Prospects).Returns(mockProspect.Object);

        var prospectService = new ProspectsService(mockContext.Object); …
Run Code Online (Sandbox Code Playgroud)

.net c# unit-testing entity-framework moq

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

Jest:找不到要测试的模块内所需的模块(相对路径)

我有这个组件:

import React from 'react';
import VideoTag from './VideoTag';
import JWPlayer from './JWPlayer';

class VideoWrapper extends React.Component {
//... component code
}
Run Code Online (Sandbox Code Playgroud)

基于某些逻辑的内部渲染另一个组件(VideoTag或JWPlayer),但当我尝试在jest文件中测试它时,我得到错误:

找不到模块'./VideoTag'

三个组合在同一个目录中,这就是为什么它实际工作的时候我在浏览器中看到它并在浏览器中看到它,但看起来Jest在解决这些相对路径时遇到问题,这是jest文件:

jest.dontMock('../src/shared/components/Video/VideoWrapper.jsx');

import React from 'react';
import ReactDOM from 'react-dom';
TestUtils from 'react-addons-test-utils';

import VideoWrapper from '../src/shared/components/Video/VideoWrapper.jsx';

describe('VideoWrapper tests', () => {
  it('Render JWPlayer', () => {

      let vWrapper = TestUtils.renderIntoDocument(
      < VideoWrapper model={model} />
  );

  });
});
Run Code Online (Sandbox Code Playgroud)

错误在线:

import VideoWrapper from '../src/shared/components/Video/VideoWrapper.jsx';
Run Code Online (Sandbox Code Playgroud)

如何告诉jest如何处理相对路径?

javascript unit-testing node.js reactjs jestjs

8
推荐指数
2
解决办法
7748
查看次数

服务器发送事件 (sse) 可以与 AWS Cloudfront 配合使用吗?

有没有办法让 sse(服务器发送事件)使用 Cloudfront 工作?

我知道他们几年前宣布了 websockets 支持,但我找不到任何与通过 Cloudfront 使用 sse 通信相关的参考或案例。

我做了一个测试,大约一分钟后客户端响应以 504 Gateway Time-out 结束。

amazon-web-services server-sent-events amazon-cloudfront

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

运行Add-Migration时无法加载程序集Microsoft.EntityFrameworkCore.Design

我用以下.csproj创建了一个类库项目:

  <Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.sqlserver.Design" Version="1.1.1" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.0" />
  </ItemGroup>

</Project>
Run Code Online (Sandbox Code Playgroud)

运行命令时:

Add-Migration -Name Test -Context TestContext
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.EntityFrameworkCore.Design, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
File name: 'Microsoft.EntityFrameworkCore.Design, Culture=neutral, PublicKeyToken=null'
   at System.Reflection.RuntimeAssembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, RuntimeAssembly locationHint, StackCrawlMark& stackMark, IntPtr pPrivHostBinder, Boolean throwOnFileNotFound, Boolean forIntrospection, Boolean suppressSecurityChecks, IntPtr ptrLoadContextBinder)
   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, …
Run Code Online (Sandbox Code Playgroud)

ef-migrations entity-framework-core asp.net-core asp.net-core-1.1

4
推荐指数
2
解决办法
5540
查看次数