我正在学习有关单元测试的知识,并想知道如何编写可测试代码。但是,我不知道如何编写可测试的代码而不使其变得复杂。我将以著名的汽车和发动机问题来描述这个问题。
class Car
{
private:
Engine m_engine;
public:
Car();
// Rest of the car
}
我想出了以下解决方案,使上面的代码可以测试。
将汽车的构造函数更改为以发动机为参数。然后模拟引擎并进行测试。但是,如果我没有不同类型的引擎,那么参数化构造函数只是为了使其可测试是不合适的。
使用setter,然后将模拟引擎传递给setter。和上面的流量相同。
首
我正在读一本关于Hibernate的书,它试图说明一对一的关联。他们用的是汽车和发动机的例子。让我们假设一辆汽车只能有一个发动机,而一个发动机只能进入一种类型的汽车。它们将此实现为Java对象的方式如下所示:
将Car类中的engine类引用为:private Engine engine;将引擎类中的Car类引用为private Car car = null;的意义是什么?
为什么一个被分配为null的值,而另一个被简单地声明?这背后的原因是什么?这是意味着方向性,还是发动机是一个组合?
我正在阅读“设计模式”( Design )一书。在某一点上,运行时和编译时结构进行了比较。在本节中,编写了以下内容:
聚合意味着一个对象拥有另一个对象或负责另一个对象。一般来说,我们指的是一个拥有另一个物体或作为另一个物体的一部分的物体。聚合意味着聚合对象及其所有者具有相同的生存期。
我对此的解释类似于Java中的以下内容:
public class SomeClass{
private OtherClass; //This is the aggregate object
//...
}
我想这就是他们的意思,我觉得这很容易理解。但是,他们定义了一个熟人:
熟人意味着
我有以下代码(我知道它不好; ):
public class Clazz1 {
public int test = 10;
public enum test {a, s, d, f }
void sth() {
// ...
}
}
有什么方法可以访问这个枚举吗?当我输入'test‘时,它总是表示int变量。与这种情况相关的规则是什么-为什么编译器允许enum和int具有相同的名称?
无法找到类型或命名空间名称'SmartTerrain‘(您是缺少使用指令还是程序集引用?)无法找到类型或命名空间名称'PositionalDeviceTracker‘(您是缺少使用指令还是程序集引用?)
这些错误不是在版本9中,而是在版本10中,它们正在影响项目流程,请帮助我。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
using Vuforia;
public class ARManager : MonoBehaviour
{