• 将接口A以类B的一个属性注入,并通过类B的一个方法操作接口A的某个方法。

下面是一个示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
namespace Samples  
{
/// <summary>
/// 这是一个抽象类,其中包含一个抽象方法
/// </summary>
public abstract class Forceps
{
public abstract void Grab();
}
}



using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Moq;
using NUnit.Framework;

namespace Samples.Test
{
/// <summary>
/// 测试类
/// 测试通过依赖注入的方法,调用接口函数
/// </summary>
[TestFixture]
class SurgeonFixture
{
[Test]
public void CallingOperateCallsGrabOnForceps()
{ var forcepsMock = new Mock<Forceps>();

var surgeon = new Surgeon(forcepsMock.Object);
surgeon.Operate();

forcepsMock.Verify(f => f.Grab());
} }}
阅读全文 »

Bash

script
1
2
3
4
5
D:\package\TeamCity\bin\runAll.bat start
D:\package\TeamCity\buildAgent\bin\agent.bat start

D:\package\TeamCity\buildAgent\bin\agent.bat stop force
D:\package\TeamCity\bin\runAll.bat stop force

导入Entitas插件

创建一个Unity空项目,然后导入Entitas-1.13.0.unitypackage资源文件 附包下载地址

Entitas插件导入之后,按快捷键 Ctrl + Shift + G 生成Generated文件目录,再创建一个Features目录存放游戏逻辑代码,Scenes存放场景资源文件。

阅读全文 »

Code Generation [代码自动生成]

CodeGenerated的项目基本结构

在导入Entitas插件并配置好相关设置之后,在Unity面板中按下快捷键Ctrl+Shift+G得到下面截图这样的CodeGenerated项目结构。
看下来总共分为三个部分:Game Input 全局类

阅读全文 »